最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python反扒機(jī)制的5種解決方法

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

前言

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

基于User-Agent反爬

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

解決方法:

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

代碼示例:

python干貨:5種反扒機(jī)制的解決方法

二. 加載fake_useragent庫(kù),隨機(jī)生成User-Agent添加到headers中

代碼示例:

python干貨:5種反扒機(jī)制的解決方法

2 基于IP反爬

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

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

如何獲取代理服務(wù)器?免費(fèi):西祠代理、快代理、goubanjia 收費(fèi):代理精靈等

代碼示例:

python干貨:5種反扒機(jī)制的解決方法

3 基于cookie反扒

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

解決方法:

一 手動(dòng)處理

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

二 自動(dòng)處理

需要兩次處理。第一次是為了捕獲和存儲(chǔ)cookie到session對(duì)象中,第二次就是用攜帶cookie的session進(jìn)行請(qǐng)求發(fā)送,這次請(qǐng)求發(fā)送就是攜帶cookie發(fā)起的請(qǐng)求。可以跟requests一樣調(diào)用get/post進(jìn)行請(qǐng)求的發(fā)送。在使用session進(jìn)行請(qǐng)求發(fā)送的過程中,如果產(chǎn)生了cookie,則cookie會(huì)被自動(dòng)存儲(chǔ)session對(duì)象中

代碼示例:

#基于session自動(dòng)處理
cookiesess = requests.Session() 
#該次請(qǐng)求只是為了捕獲cookie存儲(chǔ)到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 圖片懶加載

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

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

示例代碼:

python干貨:5種反扒機(jī)制的解決方法

5 Ajax動(dòng)態(tài)加載

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

抓包工具推薦:fiddler

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

相關(guān)文章

  • Python面向?qū)ο髮?shí)現(xiàn)數(shù)據(jù)分析的實(shí)例詳解

    Python面向?qū)ο髮?shí)現(xiàn)數(shù)據(jù)分析的實(shí)例詳解

    這篇文章主要通過幾個(gè)實(shí)例為大家詳細(xì)介紹了Python面向?qū)ο髮?shí)現(xiàn)數(shù)據(jù)分析的方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2023-01-01
  • 使用python和opencv的mask實(shí)現(xiàn)摳圖疊加

    使用python和opencv的mask實(shí)現(xiàn)摳圖疊加

    這篇文章主要介紹了使用python和opencv的mask實(shí)現(xiàn)摳圖疊加操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 在PyCharm中實(shí)現(xiàn)關(guān)閉一個(gè)死循環(huán)程序的方法

    在PyCharm中實(shí)現(xiàn)關(guān)閉一個(gè)死循環(huán)程序的方法

    今天小編就為大家分享一篇在PyCharm中實(shí)現(xiàn)關(guān)閉一個(gè)死循環(huán)程序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 深入探究Python中變量的拷貝和作用域問題

    深入探究Python中變量的拷貝和作用域問題

    這篇文章主要介紹了Python中變量的拷貝和作用域問題,包括一些賦值、引用問題,以及相關(guān)函數(shù)在Python2和3版本之間的不同,需要的朋友可以參考下
    2015-05-05
  • 詳解【python】str與json類型轉(zhuǎn)換

    詳解【python】str與json類型轉(zhuǎn)換

    這篇文章主要介紹了【python】str與json類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 基于Python繪制世界疫情地圖詳解

    基于Python繪制世界疫情地圖詳解

    這篇文章主要介紹了如何使用Python繪制世界疫情地圖,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Python Pandas數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單介紹

    Python Pandas數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單介紹

    這篇文章主要介紹了Python Pandas數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單介紹的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python3 字符串知識(shí)點(diǎn)學(xué)習(xí)筆記

    python3 字符串知識(shí)點(diǎn)學(xué)習(xí)筆記

    字符串是 Python 中最常用的數(shù)據(jù)類型。我們可以使用引號(hào)('或")來創(chuàng)建字符串
    2020-02-02
  • python模塊中判斷全局變量的賦值的實(shí)例講解

    python模塊中判斷全局變量的賦值的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python模塊中判斷全局變量的賦值的實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • Python3+Appium安裝使用教程

    Python3+Appium安裝使用教程

    這篇文章主要介紹了Python3+Appium安裝使用教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

镇坪县| 常州市| 股票| 伊吾县| 山东| 东辽县| 德昌县| 泽州县| 美姑县| 洪泽县| 伊金霍洛旗| 来宾市| 正蓝旗| 芜湖市| 浦江县| 莲花县| 吉首市| 仲巴县| 莆田市| 叙永县| 肥西县| 绥中县| 延川县| 黄平县| 顺昌县| 迁安市| 安义县| 皋兰县| 山阳县| 浪卡子县| 精河县| 雷山县| 罗平县| 集贤县| 高要市| 临湘市| 安陆市| 文昌市| 贞丰县| 永新县| 营口市|