Selenium "Please verify you are a human" 在 Firefox 中弹出

Selenium "Please verify you are a human" Popup in Firefox

我很好奇是否有人找到解决方法来处理使用 Selenium 和 BeautifulSoup 时 FireFox 中随机弹出的“请验证您是人类”。目前,它大约每 500 或 1,000 个 URL 请求弹出一次,但我希望有一个自动化的解决方法。

我的驱动只是默认的driver = webdriver.Firefox() selenium。弹出窗口是一个按住按钮(下图),我刚刚看到它弹出时手动完成。任何信息都将非常感谢!

所以我想出了一个解决方法。由于 URL 在出现 'Please verify you are human' 弹出窗口时实际上并没有更改/重定向,因此我在使用 beautifulSoup.

获取元素之前添加了一个步骤

对于正在抓取的列表中的每个 URL,我都会执行 time.sleep(5.5) 以允许 URL 完全加载或出现验证弹出窗口。然后,我与 URL 交互并寻找验证指标。对于 StockX,它是这样工作的:如果为真,请尝试 soup.find('div', class_='page-title').text,如果找到 '\nPlease verify you are a human\n',则关闭浏览器并休眠(driver.quit()time.sleep(20)),否则抓取元素。

我没有编写完整的代码来工作,但我知道我可以检测它是否是如上所述的验证页面。像下面这样的东西可能是:

for url in url_list:
  for attempt in range(5):
    try:
      if soup.find('div', class_='page-title').text == '\nPlease verify you are a human\n':
        driver.quit()
        time.sleep(20)
      else:
        scrape_everything()
    except:
      print(f'Hit Verify Page Attempt Num.: {attempt}')
    else:
      break
  else:
    continue