--------------------更新--------------------------
该问题已解决,通过注入 stealthjs 脚本,来反 headless 浏览器检测,具体代码如下
https://cloud.tencent.com/developer/article/1541705
试试看这个。
selenium 自动化测试时,chrome 出现 “Chrome 正受到自动测试软件的控制” 的解决办法
这个应该是网站有反爬机制,识别到非人操作
你抓下浏览器的包就知道了,使用 webdriver 访问时会带上特定的 header,你要找办法去掉
你要伪装成真人用浏览器去查看网页 ,在哪加我忘了,百度一下就有
通过注入 stealthjs 脚本的方式已解决该问题
是这一段么?
async def _pre_headers(self, url: str, data=None) -> Dict:
"""
请求头参数签名
Args:
url:
data:
Returns:
"""
encrypt_params = await self.playwright_page.evaluate("([url, data]) => window._webmsxyw(url,data)", [url, data])
local_storage = await self.playwright_page.evaluate("() => window.localStorage")
signs = sign(
a1=self.cookie_dict.get("a1", ""),
b1=local_storage.get("b1", ""),
x_s=encrypt_params.get("X-s", ""),
x_t=str(encrypt_params.get("X-t", ""))
)
headers = {
"X-S": signs["x-s"],
"X-T": signs["x-t"],
"x-S-Common": signs["x-s-common"],
"X-B3-Traceid": signs["x-b3-traceid"]
}
self.headers.update(headers)
return self.headers