今天寫的這篇文章是關(guān)于python爬蟲簡單的一個使用,選取的爬取對象是著名的招聘網(wǎng)站——拉鉤網(wǎng),由于和大家的職業(yè)息息相關(guān),所以爬取拉鉤的數(shù)據(jù)進(jìn)行分析,對于職業(yè)規(guī)劃和求職時的信息提供有很大的幫助。
完成的效果
爬取數(shù)據(jù)只是第一步,怎樣使用和分析數(shù)據(jù)也是一大重點,當(dāng)然這不是本次博客的目的,由于本次只是一個上手的爬蟲程序,所以我們的最終目的只是爬取到拉鉤網(wǎng)的職位信息,然后保存到Mysql數(shù)據(jù)庫中。最后中的效果示意圖如下:
 
 
控制臺輸入
 
 
數(shù)據(jù)庫顯示
準(zhǔn)備工作
首先需要安裝python,這個網(wǎng)上已經(jīng)有很多的教程了,這里就默認(rèn)已經(jīng)安裝python,博主使用的是python3.6,然后安裝了requests、pymysql(連接數(shù)據(jù)庫使用)和Mysql數(shù)據(jù)庫。
分析拉勾網(wǎng)
首先我們打開拉勾網(wǎng),打開控制臺,搜索java關(guān)鍵詞搜索職位,選取北京地區(qū),然后查看network一欄中的數(shù)據(jù)分析,查看第一個,是不是感覺它很像我們要拿到的請求地址,事實上不是的,這個打開之后是一個html,如果我們訪問這個接口,拉鉤會返回給我們一個結(jié)果,提示我們操作太頻繁,也就是被攔截了。不過從這個頁面可以看到,拉鉤的網(wǎng)頁用到了模板,這種加載數(shù)據(jù)的方式更加快速(大幅度提升),建議大家可以嘗試使用一下(個人拙見)
 
 
不要氣餒,我們接著往下找,可以看到一個“positionAjax”開頭的請求,沒錯就它“ https://www.lagou.com/jobs/positionAjax.jsonpx=default&city=%E5%8C%97%E4%BA%AC&needAddtionalResult=false&isSchoolJob=0 ”,還是看圖說話吧
 
 
找到請求地址之后,我們就開始寫代碼了。
先是導(dǎo)入requests和pymysql,然后requests的post方法訪問上面找到的url,但是直接訪問這個地址是會被攔截的,因為我們?nèi)鄙偎獋鬏數(shù)臄?shù)據(jù),和設(shè)置請求頭,會被認(rèn)為是非自然人請求的,加入請求頭和數(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,#頁數(shù)   'kd': position#搜索的職位 }            
新聞熱點
疑難解答