Selenium [求助] webdriver 进小红书官网进行操作总是报错网络异常怎么解决?

· July 03, 2024 · Last by Relakkes replied at August 03, 2024 · 8358 hits


--------------------更新--------------------------
该问题已解决,通过注入 stealthjs 脚本,来反 headless 浏览器检测,具体代码如下

共收到 10 条回复 时间 点赞

https://cloud.tencent.com/developer/article/1541705

试试看这个。

selenium 自动化测试时,chrome 出现 “Chrome 正受到自动测试软件的控制” 的解决办法

这个应该是网站有反爬机制,识别到非人操作

#3 · July 03, 2024 Author
恒温 #1 回复


去掉 “Chrome 正在受到自动软件的控制” 这个提示,无法解决该问题

你抓下浏览器的包就知道了,使用 webdriver 访问时会带上特定的 header,你要找办法去掉

你要伪装成真人用浏览器去查看网页😌 ,在哪加我忘了,百度一下就有

通过注入 stealthjs 脚本的方式已解决该问题😀

#6 回复

能说下具体咋操作的不?

恒温 #7 回复

https://github.com/NanmiCoder/MediaCrawler 这个项目里的防反爬代码

#8 回复

是这一段么?


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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up