【问题标题】:Why doesn't instagram work with Selenium headless Chrome?为什么 instagram 不能与 Selenium 无头 Chrome 一起使用?
【发布时间】:2021-04-03 05:07:52
【问题描述】:

我正在尝试构建一个无头工作的 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")

我得到了这些截图basically saying 'error, retry after several minutes' in french

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

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

你建议我做什么?

【问题讨论】:

    标签: python selenium selenium-chromedriver headless pythonanywhere


    【解决方案1】:
    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 ,转到网络选项卡,打开请求标头并复制用户代理部分并在您的代码中替换

    Headless browser detection

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-04
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多