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

詳解Selenium-webdriver繞開反爬蟲機制的4種方法

 更新時間:2020年10月28日 11:16:29   作者:hulaooo  
這篇文章主要介紹了詳解Selenium-webdriver繞開反爬蟲機制的4種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

之前爬美團外賣后臺的時候出現(xiàn)的問題,各種方式拖動驗證碼都無法成功,包括直接控制拉動,模擬人工軌跡的隨機拖動都失敗了,最后發(fā)現(xiàn)只要用chrome driver打開頁面,哪怕手動登錄也不可以,猜測driver肯定是直接被識別出來了。一開始嘗試了改user agent等方式,仍然不行,由于其他項目就擱置了。今天爬淘寶生意參謀又出現(xiàn)這個問題,經(jīng)百度才知道原來chrome driver的變量有一個特征碼,網(wǎng)站可以直接根據(jù)特征碼判斷,經(jīng)百度發(fā)現(xiàn)有4種方法可以解決,記錄一下自己做的嘗試。

1、mitproxy攔截請求 √

本質(zhì)上就是在響應中利用mitproxy將包含的webdriver的JS中的關(guān)鍵字替換成其他的字符
1.給本機設置代理ip 127.0.0.1端口8001(為了讓所有流量走mitmproxy)具體方法請百度。
2.啟動mitmproxy。

windows:

mitmdump -p 8001

3.打開chrome的開發(fā)者工具,查各個.js文件,是否存在driver字樣,最終找到需要的.js文件。

4.干擾腳本

def response(flow): 
  if '/js/yoda.' in flow.request.url:
  for webdriver_key in ['webdriver', '__driver_evaluate', '__webdriver_evaluate', '__selenium_evaluate', '__fxdriver_evaluate', '__driver_unwrapped', '__webdriver_unwrapped', '__selenium_unwrapped', '__fxdriver_unwrapped', '_Selenium_IDE_Recorder', '_selenium', 'calledSelenium', '_WEBDRIVER_ELEM_CACHE', 'ChromeDriverw', 'driver-evaluate', 'webdriver-evaluate', 'selenium-evaluate', 'webdriverCommand', 'webdriver-evaluate-response', '__webdriverFunc', '__webdriver_script_fn', '__$webdriverAsyncExecutor', '__lastWatirAlert', '__lastWatirConfirm', '__lastWatirPrompt', '$chrome_asyncScriptInfo', '$cdc_asdjflasutopfhvcZLmcfl_' ]:
   ctx.log.info('Remove "{}" from {}.'.format(
   webdriver_key, flow.request.url
   )) 
  flow.response.text = flow.response.text.replace('"{}"'.format(webdriver_key), '"NO-SUCH-ATTR"') 
 flow.response.text = flow.response.text.replace('t.webdriver', 'false')
 flow.response.text = flow.response.text.replace('ChromeDriver', '')

5.退出剛才的mitmproxy狀態(tài),重新用命令行啟動mitmproxy干擾腳本 監(jiān)聽8001端口的請求與響應。

mitmdump -s DriverPass.py -p 8001

2、修改源碼 ×

修改js/call_function.js,129行。

 var doc = opt_doc || document;
 var key = '$cdc_asdjflasutopfhvcZLmcfl_';
 if (!(key in doc))
 doc[key] = new Cache();
 return doc[key];
}

–>修改后

function getPageCache(opt_doc) {
 var doc = opt_doc || document;
 var key = ‘$bobo_zhangyx_';
if (!(key in doc))
 doc[key] = new Cache();
 return doc[key];
 }

經(jīng)測試似乎已失效,可能由于版本迭代問題。

3、手動打開跑程序√

cmd 運行命令

chrome.exe --remote-debugging-port=9222 

打開一個瀏覽器,然后py代碼里

chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

4、換V63之前的chrome與driver

(似乎也是個好方法但是沒有嘗試)

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

相關(guān)文章

  • 如何使用 Flask 做一個評論系統(tǒng)

    如何使用 Flask 做一個評論系統(tǒng)

    這篇文章主要介紹了如何使用 Flask 做一個評論系統(tǒng),幫助大家更好的理解和使用flask框架進行python web開發(fā),感興趣的朋友可以了解下
    2020-11-11
  • 詳解Python開啟線程和線程池的方法

    詳解Python開啟線程和線程池的方法

    這篇文章主要介紹了Python開啟線程和線程池的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-03-03
  • Python并發(fā):多線程與多進程的詳解

    Python并發(fā):多線程與多進程的詳解

    今天小編就為大家分享一篇關(guān)于Python并發(fā):多線程與多進程的詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Python數(shù)據(jù)可視化Pyecharts庫的使用教程

    Python數(shù)據(jù)可視化Pyecharts庫的使用教程

    pyecharts是一個用于生成echarts圖表的類庫。echarts是百度開源的一個數(shù)據(jù)可視化庫,用echarts生成的圖可視化效果非常棒。使用pyechart庫可以在python中生成echarts數(shù)據(jù)圖。本文將詳細介紹一下Pyecharts庫的使用,需要的可以參考一下
    2022-02-02
  • python環(huán)境的報錯解決方法

    python環(huán)境的報錯解決方法

    這篇文章主要為大家介紹了python環(huán)境的報錯解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • M1芯片Mac上Anaconda的暫時替代(miniforge)

    M1芯片Mac上Anaconda的暫時替代(miniforge)

    這篇文章主要介紹了M1芯片Mac上Anaconda的暫時替代(miniforge),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • python?函數(shù)、變量中單下劃線和雙下劃線的區(qū)別詳解

    python?函數(shù)、變量中單下劃線和雙下劃線的區(qū)別詳解

    本文主要介紹了python?函數(shù)、變量中單下劃線和雙下劃線的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Python中的簡寫操作(for、if簡寫、匿名函數(shù))

    Python中的簡寫操作(for、if簡寫、匿名函數(shù))

    這篇文章主要介紹了Python中的簡寫操作(for、if簡寫、匿名函數(shù)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python 編碼Basic Auth使用方法簡單實例

    Python 編碼Basic Auth使用方法簡單實例

    這篇文章主要介紹了 Python 編碼Basic Auth使用方法簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • python中字典按鍵或鍵值排序的實現(xiàn)代碼

    python中字典按鍵或鍵值排序的實現(xiàn)代碼

    這篇文章主要介紹了python中字典按鍵或鍵值排序的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08

最新評論