首页 > 解决方案 > 如何使用 Selenium 选择 php 过滤器和下载文件

问题描述

我一直在尝试为“投手”选择过滤器并从这里下载到 Excel:https ://www.rotowire.com/baseball/stats.php

我尝试了以下方法,但出现错误/不确定如何选择必要的项目

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("https://www.rotowire.com/baseball/stats.php")
elem = driver.find_elements_by_xpath("//div[contains(@class,'filter-tab is-selected')]")

理想情况下(目前),脚本在本地运行并下载文件。

标签: pythonselenium

解决方案


这会下载投手数据。网站中似乎存在某种类型的隐藏 html。这就是为什么代码首先找到整个表格,然后是 excel 按钮。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("https://www.rotowire.com/baseball/stats.php")
pitchers = driver.find_element_by_xpath("//div[@data-name='P']")
pitchers.click()

player_stats_elem = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, "//div[@data-pos='p']")))
excel_download = WebDriverWait(player_stats_elem, 5).until(EC.presence_of_element_located((By.XPATH, ".//img[@alt='Excel']/..")))
excel_download.click()

推荐阅读