python爬取拉勾網(wǎng)職位數(shù)據(jù)的方法
今天寫的這篇文章是關(guān)于python爬蟲簡(jiǎn)單的一個(gè)使用,選取的爬取對(duì)象是著名的招聘網(wǎng)站——拉鉤網(wǎng),由于和大家的職業(yè)息息相關(guān),所以爬取拉鉤的數(shù)據(jù)進(jìn)行分析,對(duì)于職業(yè)規(guī)劃和求職時(shí)的信息提供有很大的幫助。
完成的效果
爬取數(shù)據(jù)只是第一步,怎樣使用和分析數(shù)據(jù)也是一大重點(diǎn),當(dāng)然這不是本次博客的目的,由于本次只是一個(gè)上手的爬蟲程序,所以我們的最終目的只是爬取到拉鉤網(wǎng)的職位信息,然后保存到Mysql數(shù)據(jù)庫(kù)中。最后中的效果示意圖如下:
控制臺(tái)輸入
數(shù)據(jù)庫(kù)顯示
準(zhǔn)備工作
首先需要安裝python,這個(gè)網(wǎng)上已經(jīng)有很多的教程了,這里就默認(rèn)已經(jīng)安裝python,博主使用的是python3.6,然后安裝了requests、pymysql(連接數(shù)據(jù)庫(kù)使用)和Mysql數(shù)據(jù)庫(kù)。
分析拉勾網(wǎng)
首先我們打開拉勾網(wǎng),打開控制臺(tái),搜索java關(guān)鍵詞搜索職位,選取北京地區(qū),然后查看network一欄中的數(shù)據(jù)分析,查看第一個(gè),是不是感覺它很像我們要拿到的請(qǐng)求地址,事實(shí)上不是的,這個(gè)打開之后是一個(gè)html,如果我們?cè)L問(wèn)這個(gè)接口,拉鉤會(huì)返回給我們一個(gè)結(jié)果,提示我們操作太頻繁,也就是被攔截了。不過(guò)從這個(gè)頁(yè)面可以看到,拉鉤的網(wǎng)頁(yè)用到了模板,這種加載數(shù)據(jù)的方式更加快速(大幅度提升),建議大家可以嘗試使用一下(個(gè)人拙見)
不要?dú)怵H,我們接著往下找,可以看到一個(gè)“positionAjax”開頭的請(qǐng)求,沒錯(cuò)就它“ https://www.lagou.com/jobs/positionAjax.jsonpx=default&city=%E5%8C%97%E4%BA%AC&needAddtionalResult=false&isSchoolJob=0 ”,還是看圖說(shuō)話吧
找到請(qǐng)求地址之后,我們就開始寫代碼了。
先是導(dǎo)入requests和pymysql,然后requests的post方法訪問(wèn)上面找到的url,但是直接訪問(wèn)這個(gè)地址是會(huì)被攔截的,因?yàn)槲覀內(nèi)鄙偎獋鬏數(shù)臄?shù)據(jù),和設(shè)置請(qǐng)求頭,會(huì)被認(rèn)為是非自然人請(qǐng)求的,加入請(qǐng)求頭和數(shù)據(jù),
headers = {'Referer':'https://www.lagou.com/jobs/list_'+position+'?city=%E5%8C%97%E4%BA%AC&cl=false&fromSearch=true&labelWords=&suginput=', 'Origin':'https://www.lagou.com', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',
'Accept':'application/json, text/javascript, */*; q=0.01',
'Cookie':'JSESSIONID=ABAAABAAAGFABEFE8A2337F3BAF09DBCC0A8594ED74C6C0; user_trace_token=20180122215242-849e2a04-ff7b-11e7-a5c6-5254005c3644; LGUID=20180122215242-849e3549-ff7b-11e7-a5c6-5254005c3644; index_location_city=%E5%8C%97%E4%BA%AC; _gat=1; TG-TRACK-CODE=index_navigation; _gid=GA1.2.1188502030.1516629163; _ga=GA1.2.667506246.1516629163; LGSID=20180122215242-849e3278-ff7b-11e7-a5c6-5254005c3644; LGRID=20180122230310-5c6292b3-ff85-11e7-a5d5-5254005c3644; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1516629163,1516629182; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1516633389; SEARCH_ID=8d3793ec834f4b0e8e680572b83eb968'
}
dates={'first':'true',
'pn': page,#頁(yè)數(shù)
'kd': position#搜索的職位
}
加入請(qǐng)求頭之后就可以請(qǐng)求了,控制臺(tái)輸出數(shù)據(jù),可以看出是一個(gè)json數(shù)據(jù),使用json方法處理之后,一步步找到我們想要的數(shù)據(jù),可以看出全在“result”里面,那么我們就只拿到他就行了,
result=resp.json()['content']['positionResult']['result']
這個(gè)時(shí)候可以看到數(shù)據(jù)非常多,有30個(gè)左右,不過(guò)不用擔(dān)心,都是英文單詞,基本上可以才出意思。接下來(lái)我們就要怕這些數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,以備日后分析使用。
連接mysql我使用的是pymysql,先建好數(shù)據(jù)庫(kù)和數(shù)據(jù)表,然后在代碼中加入配置信息
config={
"host":"127.0.0.1",
"user":"root",
"password":"",
"database":databaseName,
"charset":"utf8"#防止中文亂碼
}
加載配置文件,連接數(shù)據(jù)庫(kù)
db = pymysql.connect(**config) cursor = db.cursor() sql=""#insert語(yǔ)句 cursor.execute() db.commit() #提交數(shù)據(jù) cursor.close() db.close()#用完記得關(guān)閉連接
大功告成,這個(gè)時(shí)候拉鉤的職位信息已經(jīng)靜靜地躺在了你的數(shù)據(jù)庫(kù)中,靜待你的寵幸,拿到這些數(shù)據(jù),你就可以進(jìn)行一些分析了,比如平均工資水平、職位技能要求等。
因?yàn)槠邢?,有些代碼并沒有粘貼出來(lái),比如sql語(yǔ)句(這個(gè)sql寫的挺長(zhǎng)的),但是別擔(dān)心,樓主已經(jīng)把這個(gè)程序放入到github上面了,大家可以自行下載,github地址:https://github.com/wudb1993/pythonDemo如果覺得不錯(cuò)的話請(qǐng)?jiān)趃ithub上面點(diǎn)一下star,手打不易謝謝啦,歡迎大神拍磚。
總結(jié)
以上所述是小編給大家介紹的python爬取拉勾網(wǎng)職位數(shù)據(jù)的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- python完成FizzBuzzWhizz問(wèn)題(拉勾網(wǎng)面試題)示例
- python3對(duì)拉勾數(shù)據(jù)進(jìn)行可視化分析的方法詳解
- python爬取網(wǎng)站數(shù)據(jù)保存使用的方法
- 實(shí)例講解Python爬取網(wǎng)頁(yè)數(shù)據(jù)
- Python實(shí)現(xiàn)爬取需要登錄的網(wǎng)站完整示例
- python動(dòng)態(tài)網(wǎng)頁(yè)批量爬取
- Python爬取網(wǎng)頁(yè)中的圖片(搜狗圖片)詳解
- python爬蟲爬取網(wǎng)頁(yè)表格數(shù)據(jù)
- 簡(jiǎn)單實(shí)現(xiàn)Python爬取網(wǎng)絡(luò)圖片
- Python3獲取拉勾網(wǎng)招聘信息的方法實(shí)例
相關(guān)文章
Python chardet庫(kù)識(shí)別編碼原理解析
這篇文章主要介紹了python chardet庫(kù)識(shí)別編碼原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
一份python入門應(yīng)該看的學(xué)習(xí)資料
關(guān)于python入門你應(yīng)該看這些資料,幫助你快速入門python,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
python3爬蟲獲取html內(nèi)容及各屬性值的方法
今天小編就為大家分享一篇python3爬蟲獲取html內(nèi)容及各屬性值的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
淺談tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意點(diǎn)
這篇文章主要介紹了淺談tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
PyG搭建GCN模型實(shí)現(xiàn)節(jié)點(diǎn)分類GCNConv參數(shù)詳解
這篇文章主要為大家介紹了PyG搭建GCN模型實(shí)現(xiàn)節(jié)點(diǎn)分類GCNConv參數(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
PyTorch中g(shù)rid_sample的使用及說(shuō)明
這篇文章主要介紹了PyTorch中g(shù)rid_sample的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
python?pip特殊用法之pip?install?-v?-e?.命令詳解
這篇文章主要給大家介紹了關(guān)于python?pip特殊用法之pip?install?-v?-e?.命令的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-09-09
python中for循環(huán)輸出列表索引與對(duì)應(yīng)的值方法
今天小編就為大家分享一篇python中for循環(huán)輸出列表索引與對(duì)應(yīng)的值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11

