您好,登錄后才能下訂單哦!
這篇文章主要介紹了python2如何使用bs4爬取騰訊社招,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
目的:獲取騰訊社招這個(gè)頁(yè)面的職位名稱及超鏈接 職位類別 人數(shù) 地點(diǎn)和發(fā)布時(shí)間
要求:使用bs4進(jìn)行解析,并把結(jié)果以json文件形式存儲(chǔ)
注意:如果直接把python列表沒有序列化為json數(shù)組,寫入到j(luò)son文件,會(huì)產(chǎn)生中文寫不進(jìn)去到文件,所以要序列化并進(jì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' } # 獲取騰訊社招某個(gè)頁(yè)面的頁(yè)面源碼 html = requests.get(url, params = params, headers = headers).text # 創(chuàng)建soup對(duì)象,使用lxml解析器 soup = bs(html,'lxml') # 選取類名為odd和even的tr標(biāo)簽 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ù)存放在列表里面,列表的每個(gè)元素都為一個(gè)字典 l = [] data = {} for item in result: # 獲取標(biāo)簽的文本內(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') # 獲取標(biāo)簽的屬性值 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) # 原來(lái)中文寫不到文件里面的報(bào)錯(cuò)原因,沒把python列表序列化為json數(shù)組 # with open('tencent.json','a') as f: # f.write(str(data) + '\n') # 方法1存儲(chǔ)數(shù)據(jù),上面字典的值不用先進(jìn)行utf-8編碼 # 把數(shù)據(jù)以json文件形式存儲(chǔ) # f = open('tencent.json','a') # 把python列表序轉(zhuǎn)化為json對(duì)象。本地操作常用的是load dump。網(wǎng)絡(luò)操作常用的loads dumps,而loads常用來(lái)把json格式轉(zhuǎn)化為python格式,dumps把python格式序列為json格式 # dictdata = json.dumps(l,ensure_ascii=False) # 把json對(duì)象寫入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)
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“python2如何使用bs4爬取騰訊社招”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。