教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

常見的Python反爬方式有哪些?【Python面試題】

更新時間:2020年09月29日11時26分 來源:傳智播客 瀏覽次數(shù):

(1)問題分析

面試官主要考察面試者有沒有反爬經(jīng)驗。

(2)核心問題講解

下面列舉一些常用的反爬策略。

1)通過設置headers字段來反爬

通過headers中的User-Agent字段來反爬。最好的反爬方式是使用User-Agent池,我們可以收集一些User-Agent,或者隨機生成User-Agent。

通過添加referer字段或者是其他字段來反爬。

通過cookie來反爬。若目標網(wǎng)站無需登錄,則每次請求帶上上次返回的cookie,比如requests模塊的session;若目標網(wǎng)站需要登錄,則準備多個賬號,通過一個程序獲取賬號對應的cookie,組成cookie池,其他程序使用這些cookie。


2)通過js來反爬

通過js實現(xiàn)跳轉來反爬。在請求目錄網(wǎng)站時,我們雖然只看到了成功請求的目標網(wǎng)站,但是在請求目標網(wǎng)站之前可能有通過js實現(xiàn)的跳轉,此時可通過點擊perserve log按鈕觀察頁面的跳轉情況。在這些請求中,如果請求數(shù)量很多,一般來講,只有那些response中帶cookie字段的請求是有用的,也就是說通過這個請求,對方服務器有設置cookie到本地。

通過js生成了請求參數(shù)。對應的需要分析js,觀察加密的實現(xiàn)過程,可以使用selenium模塊解決。

通過js實現(xiàn)了數(shù)據(jù)的加密。對應的需要分析js,觀察加密的實現(xiàn)過程,可以使用selenium模塊實現(xiàn)。

3)通過驗證碼來反爬。通過打碼平臺或者是機器學習的方法識別驗證碼,其中打碼平臺廉價易用,建議使用。

4)通過IP地址來反爬。同一個IP大量請求了對方服務器,有更大的可能性會被識別為爬蟲,對應的通過購買高質量的IP的方式能夠解決。

5)通過自定義字體來反爬??梢試L試切換到手機版試試。

6)通過css來反爬,比如通過css掩蓋真實數(shù)據(jù)。

(3)問題擴展

網(wǎng)絡爬蟲,是一個自動提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。

幾乎是和爬蟲技術誕生的同一時刻,反爬蟲技術也誕生了。在90年代開始有搜索引擎網(wǎng)站利用爬蟲技術抓取網(wǎng)站時,一些搜索引擎從業(yè)者和網(wǎng)站站長通過郵件討論定下了一項“君子協(xié)議”—— robots.txt。即網(wǎng)站有權規(guī)定網(wǎng)站中哪些內容可以被爬蟲抓取,哪些內容不可以被爬蟲抓取。這樣既可以保護隱私和敏感信息,又可以被搜索引擎收錄、增加流量。

爬蟲技術剛剛誕生時,大多數(shù)從業(yè)者都會默守這一協(xié)定,但是當網(wǎng)絡爬蟲被濫用后,互聯(lián)網(wǎng)上就出現(xiàn)太多同質的東西,原創(chuàng)得不到保護,違反了“君子協(xié)議”。

當君子協(xié)議失效,很多網(wǎng)站開始反網(wǎng)絡爬蟲,想方設法保護自己的內容,它們根據(jù)IP訪問頻率、瀏覽網(wǎng)頁速率、賬戶登錄、輸入驗證碼、flash封裝、ajax混淆、js加密、圖片、css混淆等五花八門的技術來反網(wǎng)絡爬蟲。


猜你喜歡:

Python模塊有哪些?怎么使用? 

Django海量數(shù)據(jù)集分頁優(yōu)化方法 

Python數(shù)據(jù)挖掘教程下載:4天快速入門Python數(shù)據(jù)挖掘 

Python高級軟件工程師課程 

0 分享到:
和我們在線交談!