我已经尝试了一段时间来弄清楚如何在此页面上自动下载csv: https://razzball.com/mlbpitchingstats/
在顶部,您可以单击基本的html输入框,然后单击该框上的下载。我知道我可以弄清楚如何使用无头驱动程序执行此操作,但我一直在尝试弄清楚如何使用请求或以某种方式访问下载按钮侦听器。
监控网络选项卡时,似乎没有api请求。 我唯一的选择是使用无头浏览器吗?反正有没有请求抓住这个?任何帮助都会很大!
答案 0 :(得分:0)
与您的评论不同,数据不通过JS填充。关于此的两条线索:
因为@SuperStew声明你可以尝试使用Beautifulsoup,虽然它可能有点麻烦,在每个<tr/>
元素上使用for循环。
如果我需要以可用的格式获取数据,我会使用pandas。请参阅read_html方法的文档。这有额外的好处,它应该有助于将数据转换为您需要的类型,即整数。但正如文档所述,你应该期待一些数据争论。
修改强>:
似乎mlbstats阻止通过用户代理过滤,因此您必须使用带有欺骗用户代理的请求来获取页面html:
import pandas as pd
import requests
url = "https://razzball.com/mlbpitchingstats/"
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
response = requests.get(url, headers=headers)
data = pd.read_html(response.content) # will need wrangling