python2使用bs4爬取騰訊社招過程解析
更新時間:2019年08月14日 10:08:50 作者:silence-cc
這篇文章主要介紹了python2使用bs4爬取騰訊社招過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
目的:獲取騰訊社招這個頁面的職位名稱及超鏈接 職位類別 人數(shù) 地點和發(fā)布時間
要求:使用bs4進行解析,并把結(jié)果以json文件形式存儲
注意:如果直接把python列表沒有序列化為json數(shù)組,寫入到json文件,會產(chǎn)生中文寫不進去到文件,所以要序列化并進行utf-8編碼后寫入文件。
# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup as bs
import json
url = 'https://hr.tencent.com/position.php?'
params = {
'start':'10'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
# 獲取騰訊社招某個頁面的頁面源碼
html = requests.get(url, params = params, headers = headers).text
# 創(chuàng)建soup對象,使用lxml解析器
soup = bs(html,'lxml')
# 選取類名為odd和even的tr標簽
result1 = soup.select('tr[class="odd"]')
result2 = soup.select('tr[class="even"]')
# 列表拼接 l = [1,2] + [3,4],則列表l為[1,2,3,4]
result = result1 + result2
# 把數(shù)據(jù)存放在列表里面,列表的每個元素都為一個字典
l = []
data = {}
for item in result:
# 獲取標簽的文本內(nèi)容
job = item.find_all('a')[0].get_text().encode('utf-8')
category = item.find_all('td')[1].get_text().encode('utf-8')
number = item.find_all('td')[2].get_text().encode('utf-8')
address = item.find_all('td')[3].get_text().encode('utf-8')
public_time = item.find_all('td')[4].get_text().encode('utf-8')
# 獲取標簽的屬性值
link = item.find_all('a')[0].attrs['href']
fulllink = ('https://hr.tencent.com/' + link).encode('utf-8')
data['job'] = job
data['category'] = category
data['number'] = number
data['address'] = address
data['public_time'] = public_time
data['fulllink'] = fulllink
l.append(data)
# 原來中文寫不到文件里面的報錯原因,沒把python列表序列化為json數(shù)組
# with open('tencent.json','a') as f:
# f.write(str(data) + '\n')
# 方法1存儲數(shù)據(jù),上面字典的值不用先進行utf-8編碼
# 把數(shù)據(jù)以json文件形式存儲
# f = open('tencent.json','a')
# 把python列表序轉(zhuǎn)化為json對象。本地操作常用的是load dump。網(wǎng)絡操作常用的loads dumps,而loads常用來把json格式轉(zhuǎn)化為python格式,dumps把python格式序列為json格式
# dictdata = json.dumps(l,ensure_ascii=False)
# 把json對象寫入json文件
# f.write(dictdata.encode('utf-8'))
# f.close()
# 把數(shù)據(jù)存入tencent.json文件內(nèi)
json.dump(l,open('tencent.json','a'),ensure_ascii=False)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python機器學習Sklearn實戰(zhàn)adaboost算法示例詳解
這篇文章主要為大家介紹了python機器學習Sklearn實戰(zhàn)adaboost算法的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2021-11-11
使用Python將PDF表格提取到文本,CSV和Excel文件中
本文將介紹如何使用簡單的Python代碼從PDF文檔中提取表格數(shù)據(jù)并將其寫入文本、CSV和Excel文件,從而輕松實現(xiàn)PDF表格的自動化提取,有需要的可以參考下2024-11-11
使用python將微信image下.dat文件解密為.png的方法
這篇文章主要介紹了使用python將微信image下.dat文件解密為.png的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
python pandas dataframe如何獲取除了指定列以外的所有列
這篇文章主要介紹了python pandas dataframe如何獲取除了指定列以外的所有列問題,具有很好的參考價值,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09

