當前位置:
首頁 > 知識 > 爬蟲的基本套路,你知多少?

爬蟲的基本套路,你知多少?

什麼作用?

通過有效的爬蟲手段批量採集數據,可以降低人工成本,提高有效數據量,給予運營/銷售的數據支撐,加快產品發展。

業界的情況

目前互聯網產品競爭激烈,業界大部分都會使用爬蟲技術對競品產品的數據進行挖掘、採集、大數據分析,這是必備手段,並且很多公司都設立了的崗位

合法性

爬蟲是利用程序進行批量爬取網頁上的公開信息,也就是前端顯示的數據信息。因為信息是完全公開的,所以是合法的。其實就像瀏覽器一樣,瀏覽器解析響應內容並渲染為頁面,而爬蟲解析響應內容採集想要的數據進行存儲。

反爬蟲

爬蟲很難完全的制止,道高一尺魔高一丈,這是一場沒有硝煙的戰爭,碼農VS碼農

反爬蟲一些手段:

合法檢測:請求校驗(useragent,referer,介面加簽名,等)

小黑屋:IP/用戶限制請求頻率,或者直接攔截

投毒:反爬蟲高境界可以不用攔截,攔截是一時的,投毒返回虛假數據,可以誤導競品決策

... ...

爬蟲基本套路

基本流程

目標數據

來源地址

結構分析

實現構思

操刀編碼

基本手段

簡單的驗證碼可以使用識圖讀驗證碼第三方庫

請求帶上用戶cookie信息

請求頭設置,如:useragant為有效客戶端

控制請求頻率(根據實際情景)

IP代理

簽名/加密參數從html/cookie/js分析

破解請求限制

破解登錄授權

破解驗證碼

解析數據

正則匹配(根據情景使用)

轉 JSON/XML 對象進行解析

正則匹配,通過的正則表達式來匹配想要爬取的數據,如:有些數據不是在html 標籤里,而是在html的script 標籤的js變數中

使用第三方庫解析html dom,比較喜歡類jquery的庫

HTML Dom解析

數據字元串

python爬蟲

python寫爬蟲的優勢

python語法易學,容易上手

社區活躍,實現方案多可參考

各種功能包豐富

少量代碼即可完成強大功能

涉及模塊包

請求

多線程

正則

json解析

html dom解析

操作瀏覽器

實例解析

鬥魚主播排行

目標數據

獲取排行榜主播信息

來源地址

https://www.douyu.com/xxx

xxx=房間號

https://www.douyu.com/directory/rank_list/game

[排行榜地址]

[主播房間地址]

結構分析

獲得排行數據介面:https://www.douyu.com/directory/rank_list/game

獲得主播房間信息數據

參數確認(去掉不必要參數)

cookie確認(去掉不必要cookie)

模擬請求(charles/fiddler/postman)

發現$ROOM是主播房間信息,在頁面的script標籤的js變數中,可使用正則工具寫表達式去匹配

通過抓包[排行榜地址][主播房間地址](谷歌調試network/charles/fiddler)

實現構思

通過請求[主播排行介面]獲取[排行榜數據]

[排行榜數據]中有主播房間號,可以通過拼接獲得[主播房間地址]

請求[主播房間地址]可以獲得[$ROOM信息],解析可以獲得主播房間信息

操刀編碼

申明:此例子僅作為爬蟲學習DEMO,並無其他利用

基於python實現爬蟲學習基礎demo

編輯 | 碼哥

圖片源於網路,版權歸原作者所有

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員之家 的精彩文章:

都怪鹿晗?國產手機即將全線漲價!
如何在30秒內猜中另一半手機密碼?
14個超級牛X的免費開源小工具,快來用ta!
我去,玩吃雞還能物理作弊!
看完谷歌的發布會,黑科技來襲 手撕蘋果了嗎?

TAG:程序員之家 |