我正在使用以下命令从页面中查找ul
标记:
options = webdriver.ChromeOptions()
options.add_argument("headless")
driver = webdriver.Chrome(<chromedriver path>, chrome_options=options)
driver.get("https://www.atptour.com/en/rankings/singles")
html = driver.page_source
soup = bs(html, "html.parser")
dropdown = soup.find("ul", class_="dropdown")
dropdown
最后变成了None
,因为并不是所有的HTML都被刮去了
但是,如果我删除了headless
选项,那么所有的HTML都将被删除,并且我得到了dropdown
的结果
为什么会发生这种情况?是否有某种方式可以无头运行并仍然删除所有HTML
提前谢谢
如果将该html(通过无头模式返回)打印到文件并在浏览器中打开,您将看到:
因此,您的交互被验证码阻止。为什么chrome中的无头模式被阻止,而常规模式则不被阻止?不知道,他们的识别算法就是这样工作的
Headless使用以下命令运行不同的用户代理,修复了由于机器人检测而导致的错误。另外,添加窗口大小可以使查找元素更加安全
相关问题 更多 >
编程相关推荐