解決python爬取網(wǎng)站被反爬

問(wèn)題場(chǎng)景

一次性爬取豆瓣的電影TOP250時(shí),被服務(wù)器判定為IP異常,需要登錄才能正常使用

原理

爬蟲會(huì)干擾到正常的服務(wù)器訪問(wèn),所以一般的網(wǎng)站都會(huì)有反爬蟲機(jī)制,主要的原理是:

  • 監(jiān)聽(tīng)TCP連接;
  • 分析請(qǐng)求中的User-Agent和refer信息;
  • 訪問(wèn)時(shí)間間隔短,訪問(wèn)量大
解決方式

python爬取豆瓣電影,被反爬后的解決方式:

  • user_agent
    user_agent是瀏覽器類型的詳細(xì)信息,也是瀏覽器提交請(qǐng)求的重要請(qǐng)求頭部字段;
    可以提供不同的user_agent,來(lái)繞過(guò)瀏覽器的反爬機(jī)制;
  • 使用代理和IP輪換
    反爬機(jī)制最常用的方式之一是檢測(cè)IP,因此可以更換不同的IP地址來(lái)爬取內(nèi)容;
  • 設(shè)置訪問(wèn)時(shí)間和間隔
    有些網(wǎng)站的會(huì)設(shè)置訪問(wèn)時(shí)間間隔,短時(shí)間訪問(wèn)次數(shù)超過(guò)了默認(rèn)次數(shù),就會(huì)被禁用,因此可以降低訪問(wèn)頻率,設(shè)置長(zhǎng)一點(diǎn)的訪問(wèn)時(shí)間;

自己解決的時(shí)候是加headers,盡可能字段多和詳盡,可以暫時(shí)解決IP被禁用,但是爬取太多頁(yè)面還是會(huì)被禁用,所以為了直接解決這個(gè)問(wèn)題,選擇fake_useragent來(lái)隨機(jī)更換請(qǐng)求頭里的User-Agent字段,達(dá)到繞過(guò)反爬機(jī)制的效果

fake_useragent的使用方法請(qǐng)移步:

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

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

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