【发布时间】:2023-03-30 04:08:01
【问题描述】:
我正在尝试从该网站获取 pdf 文件。我正在尝试创建一个双循环,以便我可以滚动多年(季节)以获取每年的所有主要 pdf。
这行代码不起作用。问题是,我无法使这条线工作(应该多年来循环的那条线(季节):
for year in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#season a aria-valuetext"))):
year.click()
这是完整的代码:
os.chdir("C:..")
driver = webdriver.Chrome("chromedriver.exe")
wait = WebDriverWait(driver, 10)
driver.get("http://www.motogp.com/en/Results+Statistics/")
links = []
for year in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#season a aria-valuetext"))):
year.click()
for item in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#event option"))):
item.click()
elem = wait.until(EC.presence_of_element_located((By.CLASS_NAME, "padleft5")))
print(elem.get_attribute("href"))
links.append(elem.get_attribute("href"))
wait.until(EC.staleness_of(elem))
driver.quit()
这是之前的一篇文章,我在上面的代码中得到了帮助:
【问题讨论】:
-
问题/疑问是什么?
-
我用粗体字更新了问题。我的问题是,for 循环的第一行,即
for year in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#season a aria-valuetext"))): year.click()没有像我希望的那样工作。我想点击所有季节或年份来获取每年所有事件的 pdf,第二行它确实有效:for item in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#event option"))): -
“代码行不工作是这个”不是一个有用的描述。您应该编辑您的帖子以包含您期望代码执行的操作以及它实际执行的操作。
标签: python selenium web-scraping selenium-chromedriver