美文网首页
屏蔽网站对selenium的检测

屏蔽网站对selenium的检测

作者: 雨夜剪魂 | 来源:发表于2019-08-19 15:55 被阅读0次

使用mitmproy可以屏蔽对selenium的检测

在爬取淘宝拉取验证码的时候,可以使用mitmproxy中的flow.response对数据响应进行更改

import re  
from mitmproxy import ctx  
    
def response(flow):  
  """修改应答数据 
  """  
  if '/js/yoda.' in flow.request.url:  
      # 屏蔽selenium检测 
      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', '') 

相关文章

网友评论

      本文标题:屏蔽网站对selenium的检测

      本文链接:https://www.haomeiwen.com/subject/kzxesctx.html