为什么 Instagram 不能与 Selenium headless Chrome 一起使用?

2024-01-09

我正在尝试构建一个无头工作的 insta 机器人,但它似乎找不到用户名、密码列(即 NoSuchElementException)。

我尝试运行此代码来排除故障。 (基本上就是打开ig主页并截图)

from selenium import webdriver
from time import sleep

options = webdriver.ChromeOptions()
options.headless = True
options.add_argument("--window-size=1920,1080")
browser = webdriver.Chrome(options=options)
browser.get("https://www.instagram.com")
browser.get_screenshot_as_file(f"screenshot.png")

我得到了这些截图基本上用法语说“错误,几分钟后重试” https://i.stack.imgur.com/B6LeB.png

我尝试通过 selenium 找到“connectez-vous”按钮,但是我尝试的每个 xpath 都不起作用,而且不可能通过 f12 找到它

该机器人稍后将上传到 pythonanywhere,以便我可以在云中运行它(因此,如果您认为我可能遇到其他问题,您可以告诉我)

你建议我做什么?


from selenium import webdriver
from time import sleep

options = webdriver.ChromeOptions()
#options.headless = True
options.add_argument("--window-size=1920,1080")
options.add_argument("--headless")
options.add_argument("--disable-gpu")
options.add_argument(
    "user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36")
browser = webdriver.Chrome(options=options)
browser.get("https://www.instagram.com")
sleep(5)
#browser.refresh()
browser.get_screenshot_as_file(f"screenshot.png")

对于 headless chrome,useragent 设置为 chromeheadless 或其他,这使得 Instagram 检测到您正在使用 headless chrome。

您可以通过指定硬编码的用户代理来发泄这个问题,

打开普通的chrome,转到网络选项卡,打开请求标头并复制用户代理部分并替换为您的代码

无头浏览器检测 https://stackoverflow.com/questions/55364643/headless-browser-detection

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Instagram 不能与 Selenium headless Chrome 一起使用? 的相关文章

随机推荐