请在下面找到我用来从 Myntra 网站抓取价格的 XPATH。我可以从除 Myntra 之外的所有其他网站进行抓取,并且下面的 XPATH 正在我的本地 Windows 系统中使用 Selenium、Python3 版本并使用 chrome 驱动程序工作。
司机路线:
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver", options=chrome_options);
变量名称 =
driver.find_element_by_xpath('//*[@id="mountRoot"]/div/div/div/main/div[2]/div[2]/div[1]/p[1]/span/strong').text
托管到 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('//*[@class="pdp-price"]//*').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 模式时才有效,而对于无头显示器,访问被拒绝,附在下面的屏幕截图中供您参考。由于应用程序阻止无头模式
添加以下用户代理参数并将网络驱动程序加载到您的 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,如 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'
})