gpt4 book ai didi

python - 每当 'chromedriver' 不是事件窗口时,Selenium 就会搞砸

转载 作者:行者123 更新时间:2023-12-05 06:10:42 31 4
gpt4 key购买 nike

(我正在使用 Macbook Pro 2020)

每当 chrome-driver-window 不是“事件”窗口时,我的 selenium 自动化代码似乎就会出错。更具体地说:

selenium 需要向网站发出请求并从中获取一些数据,但每当我将 chrome-driver-window 最小化时,它不会获取新数据,而是复制它之前给我的数据。

我很确定这不是我的代码造成的,而是因为 selenium,所以我想问:当 chrome-driver-window 最小化时,如何让 selenium 正常工作。

代码如下:

for i in df2["keywords"]:
time.sleep(1)
search.send_keys(i)
search.send_keys(Keys.RETURN)
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "p.total-results.js_total_results"))
)
except:
print("FIRST ELEMENT NOT FOUND")
driver.quit()
search = driver.find_element_by_css_selector("input#searchfor.wsp-search__input")
data['aanbod'] = driver.find_element_by_css_selector('p.total-results.js_total_results').text
df3 = df3.append(data, ignore_index=True)
search.clear()
print(data)

如您所见,我将 selenium 与 pandas 结合使用以进行数据分析。这是当我专注于 chrome-driver-window 时数据的样子:

{'aanbod': '92 resultaten'}
{'aanbod': '167 resultaten'}
{'aanbod': '1.144 resultaten'}
{'aanbod': '102 resultaten'}
{'aanbod': '829 resultaten'}
{'aanbod': '91 resultaten'}
{'aanbod': '125 resultaten'}
{'aanbod': '225 resultaten'}
{'aanbod': '800 resultaten'}
{'aanbod': '276 resultaten'}

这是我没有关注窗口时的样子:

{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}

chrome 版本:mac 85.0.4183.121(正式版)(64 位),chrome驱动版本:mac 64 ChromeDriver 85.0.4183.87

最佳答案

如果您希望脚本在后台运行,请尝试使用 chrome 的 headless 选项。在 headless 模式下工作时,还添加 --start-maximized 是一种很好的做法,因为在某些情况下,没有此选项可能会导致元素无法识别。

在脚本的开头添加这些行:

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--start-maximized")

您将不再看到浏览器和所有发生的点击、导航等,只会看到控制台中的结果。

关于python - 每当 'chromedriver' 不是事件窗口时,Selenium 就会搞砸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64316323/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com