python - 如何使用 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')]")
理想情况下(目前),脚本在本地运行并下载文件。
解决方案
这会下载投手数据。网站中似乎存在某种类型的隐藏 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()
推荐阅读
- vue.js - Vuex:状态更新,但计算属性没有
- aws-lambda - 您知道授予 AWS API Gateway 调用 Lambda 函数权限的语法吗?
- java - JVM:如何管理由 JNI 创建的堆外内存
- regex - 使用 powershell 在字符串中搜索子字符串
- perl - 如何在不使用perl中的键的情况下查找值是否存在于哈希中?
- python - 问题在 Django 项目中安装 misaka
- python - Python Request和simplejson如何访问keyvalue
- cefsharp - 如何从 CefSharp 导出 HAR 文件
- python-3.6 - PyTorch 教程错误训练分类器
- php - 覆盖php内置函数?