无法使用 Selenium Python 单击 Google Trends 网站中的“探索”文本

问题描述 投票:0回答:1

出于我当前项目的目的,我需要获取过去 30 天、过去 12 个月的 Google 趋势数据。我可以使用 Google Trends API 获取每日数据。该软件包有另一个名为 InterestsOverTime 的 API,但当我尝试访问 Explore Page 使用此 API、网络爬行甚至 Selenium 时,Google 会阻止任何类型的自动化工作。

所以我决定转到主页,然后单击“探索”页面,但我无法使用 Selenium 执行此操作。我对 Selenium 很陌生,所以请帮助我

这是我正在使用的代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ES
chrome_options = Options()
chrome_options.add_argument("--incognito")
chrome_options.add_argument("--window-size=1920x1080")

driver = webdriver.Chrome(options=chrome_options, keep_alive=True)
url = "https://trends.google.com/trends/"
driver.get(url)
explore_button = WebDriverWait(driver,10).until(
ES.visibility_of_element_located((By.XPATH,"//span[contains(text(),'Explore')]"))
)
explore_button.click()

我尝试了多种访问方法,包括使用 Google Trends API 中的包装 APIS 并尝试使用 python 网络爬行和 selenium 访问 Explore Page,但无法获取它。即使尝试使用 Selenium 触摸文本 Explore 也不起作用

python selenium-webdriver
1个回答
0
投票

问题出在这个 XPath 表达式上:

//span[contains(text(),'Explore')]

第一个问题是,它正在定位 3 个网页元素。第二个问题是您正在定位

span
元素,而您应该定位
button
元素。

只需更改 XPath 表达式,如下所示:

(//span[text()='Explore']//parent::button)[1]
© www.soinside.com 2019 - 2024. All rights reserved.