爬取拉勾網(wǎng)數(shù)據(jù)分析師崗位

本次筆記主要記錄了本人利用python編寫爬蟲對拉勾網(wǎng)的數(shù)據(jù)分析師崗進行爬取,因為打算從事數(shù)據(jù)分析師這個職業(yè),所以想對這個職業(yè)進行一個數(shù)據(jù)分析。

首先進行數(shù)據(jù)分析第一步是要獲取數(shù)據(jù),我選擇了從拉勾網(wǎng)進行數(shù)據(jù)爬取。本次運用到的知識主要是python, html, json。

先進入拉勾網(wǎng)并用Chrome瀏覽器的開發(fā)者工具對頁面進行觀察。

紅色區(qū)域即是當(dāng)前元素所處位置

觀察發(fā)現(xiàn)其實標(biāo)簽內(nèi)部數(shù)據(jù)并不是特別完整,很多數(shù)據(jù)都被藏在了元素內(nèi)部,這樣想通過Xpath提取會變得非常麻煩和困難,因此嘗試其他方法,拉勾網(wǎng)具有反爬技術(shù),為了防止盜鏈,采用了json頁面?zhèn)鬏敂?shù)據(jù),因此我選擇去采集json數(shù)據(jù)。

再進行一次搜索


利用開發(fā)者工具找到j(luò)son頁面
檢查json數(shù)據(jù)

發(fā)現(xiàn)有完整json數(shù)據(jù),因此開始編寫爬蟲代碼對數(shù)據(jù)進行爬取。

首先要設(shè)置要訪問的url網(wǎng)址和請求頭文件。url網(wǎng)址是要爬取的頁面域名,請求頭文件則是訪問網(wǎng)站時訪問者的一些信息,例如用戶名,所用瀏覽器,訪問源頭等,如果不設(shè)置頭文件,則很大程度會因為訪問頻度過高被當(dāng)作機器人而封殺ip。

先通過開發(fā)者工具獲取url地址。

隨后再通過開發(fā)者工具獲取請求頭文件Request Headers。其中主要是獲取User-Agent, Referer 和Cookie。

將以上內(nèi)容分別寫入代碼中。

設(shè)置url和請求頭文件

在發(fā)送請求的時候有兩種發(fā)送參數(shù)方式,一種是get,另一種是post。post會以表格發(fā)送的方式發(fā)送給響應(yīng)端,無法直接在鏈接中賦值,因此需要設(shè)置一個字典來作為表格數(shù)據(jù)發(fā)送給響應(yīng)端。從開發(fā)者工具中可以看到表格內(nèi)部的結(jié)構(gòu)和信息。


因此構(gòu)建一個字典用來存儲參數(shù)數(shù)據(jù)。

這里使用request包來發(fā)送請求。

發(fā)送請求后會得到一個response,同時為了避免編碼錯誤要先將response的編碼設(shè)置為utf-8。然后利用json包用的json.loads()方法將取得的response轉(zhuǎn)化為字典格式。根據(jù)先前對json結(jié)構(gòu)分析,要進入到嵌套字典的最內(nèi)部才能取得一個result的list。


在取出list以后將值返給函數(shù)并進入數(shù)據(jù)提取階段。

設(shè)置一個字典用以存儲所要保存的值。

隨后開始批量提取并存儲數(shù)據(jù)。


在主函數(shù)中對每一頁進行上述操作的循環(huán)。

通過改變data中pn的值來進行翻頁,同時在循環(huán)結(jié)束后,先將字典轉(zhuǎn)為DataFrame格式,再用DataFrame中的內(nèi)置方法進行處理并導(dǎo)出為csv格式文件。最終獲取的文件可以用excel打開后效果如下。

由于編碼為utf-8因此Excel無法直接讀取,在此將文件格式轉(zhuǎn)為ansi以后,再次打開如下。

本章結(jié)束,下一章將講解如何用Excel進行數(shù)據(jù)清洗和數(shù)據(jù)分析。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容