如何解决如何在阻止无头模式的 chrome 无头模式下启动网站?
请在下面找到用于从 Myntra 站点获取价格的 XPATH。我可以从除 Myntra 之外的所有其他站点进行抓取,并且 XPATH 下的相同站点正在使用 Selenium、Python3 版本并使用 chrome 驱动程序在我的本地 Windows 系统中工作。
驱动程序路径:gnu-gcc -nostdlib -nostartfiles -r -o librtld.map.o '-Wl,-(' allobjs.os libc_pic.a -lgcc '-Wl,-)' -Wl,-Map,librtld.mapT
variable_name = driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver",options=chrome_options);
托管到 EC2 ubuntu 机器时出现以下错误: 消息:没有这样的元素:无法定位元素:{"method":"xpath","selector":"///*[@id="mountRoot"]/div/div/div/main/div[ 2]/div[2]/div[1]/p[1]/span/strong"}
尝试像 driver.find_element_by_xpath('//*[@id="mountRoot"]/div/div/div/main/div[2]/div[2]/div[1]/p[1]/span/strong').text
一样更改 XPATH,但没有成功。
解决方法
使用下面的XPath
driver.find_element_by_xpath('//span[@class="pdp-price"]//strong').text
或者通过使用下面的 CSS 选择器
driver.find_element_by_css_selector('.pdp-price strong').text
以上仅当站点处于 GUI 模式时才有效,而对于无头显示访问被拒绝,附在下面的屏幕截图中供您参考。由于应用程序阻止了无头模式
添加以下用户代理参数并将 Web 驱动程序加载到您的 chrome 驱动程序选项
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument("--headless")
chrome_options.add_argument(f'user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/87.0.4280.88 Safari/537.36')
,
在启动 headless chrome 时添加这个用户代理选项: --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/91.0.4472.114 Safari/537.36"
chromeLauncher.launch({
chromeFlags: ["--headless",'--disable-gpu',`--user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/91.0.4472.114 Safari/537.36"`],chromePath: '/usr/bin/google-chrome'
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。