有的网站有对webdrive这东西有检测,检测关键就是在js中植入这玩意
一、
解决方法一种是通过 mitmproxy 拦截请求替换掉这段js,python安装库 pip install mitmproxy
textnow_mit.py
# -*- coding: utf-8 -*-
from mitmproxy import ctx
def response(flow):
if 'textnow' 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', '')
linux环境下执行 mitmproxy -s textnow_mit.py 这样启动,但是windows下通过这个命令启动你会发现报
经过查询发现windows下是没有mitmproxy的windows下只有mitmdump,windows下通过执行
mitmdump -s textnow_mit.py 监听本地8080端口
然后在当前环境配置8080端口的代理,执行你的请求就行了
二、
另外一种我亲测有效的是开启谷歌开发者模式
参考文章
至于网上其他的比如cdp测试没什么用