python - Python selenium chrome驱动程序无头不起作用
问题描述
我试图制作一个允许在亚马逊网站上自动购买的机器人,我做到了。
但后来我想让机器人更快,并试图让 chrome 驱动程序无头。但是当我尝试这样做时,机器人不起作用(实际上它总是会进入不应该去的 NoSuchElement 部分。正如我之前所说的,它通常可以工作。)
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.ui import Select
import winsound
import time
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\\Users\\alpay\\AppData\\Local\\Google\\Chrome\\User
Data\\Default")
options.add_argument("--headless")
driver = webdriver.Chrome(executable_path="C:\\webdrivers\\chromedriver.exe", options=options)
buyingStatus = True
while(buyingStatus):
try:
driver.get("Item Chrome Html")
print(driver.title)
beGreedy = Select(driver.find_element_by_id('quantity'))
print(driver.title)
beGreedy.select_by_value('1')
addCart = driver.find_element_by_class_name("a-button-stack").submit()
print(driver.title)
completeTheShopping = driver.find_element_by_id("hlb-ptc-btn-native").click()
if driver.title == "Enter The Amazon":
driver.find_element_by_id("ap_password").send_keys("Enter Password")
driver.find_element_by_id("signInSubmit").click()
print(driver.title)
buyNow = driver.find_element_by_xpath("html")
freq = 500
dur = 2000
winsound.Beep(freq, dur)
print("ITEM FOUND")
buyingStatus = False
except NoSuchElementException:
print("ITEM DOESN'T EXIST")
driver.refresh()
那么,可能有什么问题?会不会是无头工作太快了?
解决方案
也许您可以尝试使用用户代理
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.24 Safari/537.36'
options.add_argument(f'user-agent={user_agent}')
推荐阅读
- python - 使用准备好的选择语句错误地格式化查询
- python - 使用 Python 根据日期时间返回日出和日落时间
- python - NEAT-Python 无法捕获极值
- python - Python 按钮定位
- javascript - 用javascript替换html中href和img链接的路径
- scala - spark中随机初始化的数据帧
- java - 跳过 JOOQ 时不会编译 JOOQ 生成的源
- python-3.x - 如何在 Python 中将整个 BMP 图像文件夹转换为 PPM?
- javascript - 创建过滤数据表的多选下拉列表
- r - 如何将 cob spline 包生成的数据显示为 ggplot2