繁体   English   中英

Python selenium 无头模式缺少元素

[英]Python selenium headless mode missing elements

问题已解决:我将我的用户代理设置为与我正常浏览时使用的相同。 显然在无头模式下,您的程序将您的用户代理更改为“无头”,亚马逊一定已经抓住了这一点并阻止了它。 请阅读以下原始问题:


我正在使用 selenium 来抓取亚马逊搜索结果页面。 当我结束它时,我将我的抓取转移到无头模式,因为它可以节省效率。 但是在无头模式下,某些页面元素不可用,例如赞助品牌。 使用非无头模式时它工作得非常好,但即使在设置以下选项后使用无头模式也失败:

options = Options()
#options.headless = True
options.add_argument("--window-size=1920,1080")
options.add_argument("--disable-extensions")
options.add_argument("--proxy-server='direct://'")
options.add_argument("--proxy-bypass-list=*")
options.add_argument("--start-maximized")
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-sandbox')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--allow-running-insecure-content')
driver = webdriver.Chrome(options=options)

PS:我尝试使用和不使用评论部分以及仅评论部分。

为了清楚起见,我截取了每个示例:是它在无头模式下运行时的样子,也是它通常的样子(没有无头模式以及普通用户浏览)。 我想知道当我在无头模式下运行赞助品牌信息时,还需要添加什么才能显示赞助品牌信息。 我认为这可能是 JavaScript 无法与浏览器正常通信的问题?

一如既往,提前谢谢你!!

使用最新的谷歌浏览器 v95.0

  • 当您使用普通的google 浏览器时,正在使用以下

     Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
  • 当您使用浏览器时,正在使用以下

     Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/95.0.4638.69 Safari/537.36

额外的Headless参数/属性的存在被拦截为 因此,您会看到差异。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM