欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python反扒機制的5種解決方法

 更新時間:2021年02月06日 09:52:46   作者:其實還好啦  
這篇文章主要介紹了python反扒機制的5種解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

反爬蟲是網站為了維護自己的核心安全而采取的抑制爬蟲的手段,反爬蟲的手段有很多種,一般情況下除了百度等網站,反扒機制會常常更新以外。為了保持網站運行的高效,網站采取的反扒機制并不是太多,今天分享幾個我在爬蟲過程中遇到的反扒機制,并簡單介紹其解決方式。

基于User-Agent反爬

簡介:服務器后臺對訪問的User_Agent進行統(tǒng)計,單位時間內同一User_Agent訪問的次數超過特定的閥值,則會被不同程度的封禁IP,從而造成無法進行爬蟲的狀況。

解決方法:

一 . 將常見的User-Agent放到ua_list中,以列表形式進行隨機使用

代碼示例:

python干貨:5種反扒機制的解決方法

二. 加載fake_useragent庫,隨機生成User-Agent添加到headers中

代碼示例:

python干貨:5種反扒機制的解決方法

2 基于IP反爬

簡介: 爬蟲程序可能會在短時間內對指定的服務器發(fā)起高頻的請求。后臺服務器對訪問進行統(tǒng)計,單位時間內同一IP訪問的次數超過一個特定的值(閥值),就會不同程度的禁封IP,導致無法進行爬蟲操作。

解決方法:使用代理池,并設定延遲訪問

如何獲取代理服務器?免費:西祠代理、快代理、goubanjia 收費:代理精靈等

代碼示例:

python干貨:5種反扒機制的解決方法

3 基于cookie反扒

簡介:網站會通過cookie跟蹤你的訪問過程,如果發(fā)現有爬蟲行為會立刻中斷你的訪問,比如特別快的填寫表單,或者短時間內瀏覽大量頁面。而正確地處理cookie,又可以避免很多采集問題,建議在采集網站過程中,檢查一下這些網站生成的cookie,然后想想哪一個是爬蟲需要處理的。

解決方法:

一 手動處理

將cookie封裝到headers字典中,將該字典作用到get/post方法的headers參數中

二 自動處理

需要兩次處理。第一次是為了捕獲和存儲cookie到session對象中,第二次就是用攜帶cookie的session進行請求發(fā)送,這次請求發(fā)送就是攜帶cookie發(fā)起的請求??梢愿鷕equests一樣調用get/post進行請求的發(fā)送。在使用session進行請求發(fā)送的過程中,如果產生了cookie,則cookie會被自動存儲session對象中

代碼示例:

#基于session自動處理
cookiesess = requests.Session() 
#該次請求只是為了捕獲cookie存儲到sess中
sess.get(url='https://xueqiu.com/',headers=headers)
url = 'https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=20367942&count=15&category=-1'
json_data = sess.get(url=url,headers=headers).json()json_data

4 圖片懶加載

簡介:圖片懶加載是一種網頁優(yōu)化技術。圖片作為一種網絡資源,在被請求時也與普通靜態(tài)資源一樣,將占用網絡資源,而一次性將整個頁面的所有圖片加載完,將大大增加頁面的首屏加載時間。為了解決這種問題,通過前后端配合,使圖片僅在瀏覽器當前視窗內出現時才加載該圖片,達到減少首屏圖片請求數的技術就被稱為“圖片懶加載”。在網頁源碼中,在img標簽中首先會使用一個“偽屬性”(通常使用src2,original......)去存放真正的圖片鏈接而并非是直接存放在src屬性中。當圖片出現到頁面的可視化區(qū)域中,會動態(tài)將偽屬性替換成src屬性,完成圖片的加載。

解決方法:通過細致觀察頁面的結構,發(fā)現圖片的鏈接真正鏈的偽屬性中,一般不在src中,而是src2中,xpath要使用該屬性

示例代碼:

python干貨:5種反扒機制的解決方法

5 Ajax動態(tài)加載

簡介:從網頁的 url 加載網頁的源代碼之后,會在瀏覽器里執(zhí)行JavaScript程序。這些程序會加載出更多的內容,并把這些內容傳輸到網頁中。這就是為什么有些網頁直接爬它的URL時卻沒有數據的原因。現在這樣的網站也越來越多。
解決方法:使用審查元素分析”請求“對應的鏈接(方法:右鍵→審查元素→Network→清空,點擊”加載更多“,出現對應的GET鏈接尋找Type為text/html的,點擊,查看get參數或者復制Request URL),循環(huán)過程。如果“請求”之前有頁面,依據上一步的網址進行分析推導第1頁。以此類推,抓取抓Ajax地址的數據。對返回的json使用requests中的json進行解析,觀察動態(tài)加載的規(guī)律,在請求頭中對規(guī)律進行使用

抓包工具推薦:fiddler

到此這篇關于python反扒機制的5種解決方法的文章就介紹到這了,更多相關python反扒機制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python?解釋器的站點配置和模塊搜索路徑詳解

    Python?解釋器的站點配置和模塊搜索路徑詳解

    Python?解釋器的站點配置是指一組配置和路徑設置,用于支持特定于站點的定制和擴展,這些配置和路徑信息由?Python?的內置?site?模塊提供,這篇文章主要介紹了Python?解釋器的站點配置和模塊搜索路徑詳解,需要的朋友可以參考下
    2022-01-01
  • 讓Django的BooleanField支持字符串形式的輸入方式

    讓Django的BooleanField支持字符串形式的輸入方式

    這篇文章主要介紹了讓Django的BooleanField支持字符串形式的輸入方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Pandas中DataFrame的常用用法分享

    Pandas中DataFrame的常用用法分享

    Pandas是Python中最流行的數據分析和處理工具之一,它提供了一個名為DataFrame的數據結構,可以被認為是一個二維表格或電子表格。本文主要來和大家分享一下Pandas中DataFrame的常用用法,希望對大家有所幫助
    2023-04-04
  • 用Python監(jiān)控你的朋友都在瀏覽哪些網站?

    用Python監(jiān)控你的朋友都在瀏覽哪些網站?

    今天教各位小伙伴一個黑科技,用Python監(jiān)控你的朋友都在瀏覽哪些網站,文中有非常詳細的介紹,對正在學習python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • OpenCV結合selenium實現滑塊驗證碼

    OpenCV結合selenium實現滑塊驗證碼

    本文主要介紹了OpenCV結合selenium實現滑塊驗證碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 利用Python實現繪制論文中的曲線圖

    利用Python實現繪制論文中的曲線圖

    這篇文章主要為大家詳細介紹了如何利用Python語言實現繪制論文中需要的曲線圖,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-03-03
  • Python實現ssh批量登錄并執(zhí)行命令

    Python實現ssh批量登錄并執(zhí)行命令

    本篇文章主要是介紹了Python實現ssh批量登錄并執(zhí)行命令,有一些任務可以進行批量完成,Python就可以完成,有需要的同學可以了解一下。
    2016-10-10
  • Python 編碼處理-str與Unicode的區(qū)別

    Python 編碼處理-str與Unicode的區(qū)別

    本文主要介紹Python 編碼處理的問題,這里整理了相關資料,并詳細說明如何處理編碼問題,有需要的小伙伴可以參考下
    2016-09-09
  • Python3?DataFrame缺失值的處理方法

    Python3?DataFrame缺失值的處理方法

    這篇文章主要介紹了Python3?DataFrame缺失值的處理,包括缺失值的判斷缺失值數據的過濾及缺失值數據的填充,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • Python?Flask?JinJa2?語法使用示例詳解

    Python?Flask?JinJa2?語法使用示例詳解

    這篇文章主要為大家介紹了Python?Flask?JinJa2?語法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論