1、網路抓包
我使用的是谷歌瀏覽器,通過抓包分析發現職位資訊請求的資料介面是:
構造請求引數,請求資料,示例**如下:
get_position
函式需要傳達兩個引數,kd
代表請求的關鍵字,pn
代表請求的頁數。這樣的確可以請求到拉勾的職位資料,當我們實際執行指令碼的時候就會發現,在抓取10頁資料之後,便會請求不到資料。通過分析發現,cookie資訊在請求10頁的資料之後,就會失效。所以我們並不能把cookie寫死,作為引數攜帶過去。如何動態獲取cookie資訊呢?通過分析發現,cookie資訊的請求介面是:
所以,我們在請求職位資料之前需要動態獲取cookie資訊,示例**如下:
這裡我採用了session來達到多個請求之間共享cookie資訊。我們在請求完10頁資料之後,便需要重新獲取一次cookie。示例**如下:
for page in range(1,31):
if page%10 == 0:
get_cookies() # cookie資訊在請求10之後會失效,需要重新獲取
到這裡資料的抓取是沒什麼問題了,接下來就是資料的儲存,這裡儲存在excel檔案中,示例**如下:
資料一行一行地寫入excel**中,採集的字段包括發布時間
,公司名稱
,公司規模
,公司標籤
,招聘崗位
,崗位標籤
,崗位福利
,城市
,地區
,薪資
,學歷
,工作經驗
,工作性質
,崗位詳情鏈
,公司詳情鏈結
15個字段 儲存格式如下:
到這裡我們就基本上完成了資料的抓取工作。接下來就是對資料的統計和分析,以及資料的視覺化。這裡就沒有繼續寫下去啦。最後總結一下:
網路爬蟲的大概分為以下步驟
1、網路抓包、分析資料請求介面
2、構造請求引數,請求資料
3、資料儲存
4、資料分析以及視覺化(基於對抓取資料的分析和展示)
希望我的分享對你有所幫助或者啟發,本期推文就到這裡啦。
關注哥們並肩走過
與你分享我的
生活趣事/好物推薦/旅行見聞/程式設計思考
Python爬取智聯招聘職位資訊
from urllib import request from urllib import parse from bs4 import beautifulsoup import csv 管理json資料的模組的 import json 定義智聯的爬蟲類 class zhilianspider obj...
使用backtrace獲取堆疊資訊
一些記憶體檢測工具如valgrind,除錯工具如gdb,可以檢視程式執行時函式呼叫的堆疊資訊,有時候在分析程式時要獲得堆疊資訊,借助於backtrace是很有幫助的,其原型如下 include int backtrace void buffer,int size char backtrace sym...
使用backtrace獲取堆疊資訊
gdb將當前函式的棧幀編號為0,為外層函式的棧幀依次加1,這些編號將成為一些gdb命令的引數,以指明將要操作的是哪乙個函式的棧幀。gdb還支援使用address作為棧幀的識別符號,可在棧幀編號被破壞的情況下使用。1.在棧幀之間切換 gdb中有很多針對呼叫堆疊的命令,都需要乙個目標棧幀,例如列印區域性...