佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > python反扒機制的5種解決方法

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

熱門標簽:電話運營中心 客戶服務 百度AI接口 語音系統(tǒng) 呼叫中心市場需求 Win7旗艦版 硅谷的囚徒呼叫中心 企業(yè)做大做強

前言

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

基于User-Agent反爬

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

解決方法:

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

代碼示例:

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

代碼示例:

2 基于IP反爬

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

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

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

代碼示例:

3 基于cookie反扒

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

解決方法:

一 手動處理

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

二 自動處理

需要兩次處理。第一次是為了捕獲和存儲cookie到session對象中,第二次就是用攜帶cookie的session進行請求發(fā)送,這次請求發(fā)送就是攜帶cookie發(fā)起的請求??梢愿鷕equests一樣調(diào)用get/post進行請求的發(fā)送。在使用session進行請求發(fā)送的過程中,如果產(chǎn)生了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=-1max_id=20367942count=15category=-1'
json_data = sess.get(url=url,headers=headers).json()json_data

4 圖片懶加載

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

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

示例代碼:

5 Ajax動態(tài)加載

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

抓包工具推薦:fiddler

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

您可能感興趣的文章:
  • Python爬蟲實例扒取2345天氣預報
  • python解決網(wǎng)站的反爬蟲策略總結(jié)
  • python爬蟲的一個常見簡單js反爬詳解
  • 詳解python 破解網(wǎng)站反爬蟲的兩種簡單方法
  • python通過偽裝頭部數(shù)據(jù)抵抗反爬蟲的實例
  • Python反爬蟲偽裝瀏覽器進行爬蟲
  • Python常見反爬蟲機制解決方案
  • python 常見的反爬蟲策略
  • python中繞過反爬蟲的方法總結(jié)

標簽:長沙 山西 安康 海南 山西 崇左 濟南 喀什

巨人網(wǎng)絡通訊聲明:本文標題《python反扒機制的5種解決方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    灵川县| 昭苏县| 三门县| 贵州省| 常宁市| 嵊泗县| 高平市| 永平县| 乐山市| 梨树县| 麻江县| 洞口县| 潞西市| 西乡县| 克拉玛依市| 凤庆县| 扎赉特旗| 盐城市| 额尔古纳市| 神池县| 东辽县| 伊金霍洛旗| 营山县| 天全县| 田林县| 许昌市| 潜江市| 兴城市| 乌苏市| 环江| 峨眉山市| 康定县| 樟树市| 海伦市| 平武县| 五家渠市| 平顶山市| 石渠县| 海原县| 铁岭市| 宝丰县|