如何自动抓取以下CSV

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

在上面的页面上,如果您点击“下载 CSV”,它会将 CSV 文件下载到您的计算机。我想设置一个每晚下载该 CSV 的过程。我也很乐意抓取数据,CSV 似乎更容易。我真的没有找到任何东西。帮忙吗?

python html web-scraping
1个回答
-1
投票
import requests

def get_daily_stats(url):
    response = requests.get(url, headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
        'Referer': 'https://baseballsavant.mlb.com/leaderboard/custom?year=2024&type=batter&filter=&min=q&selections=pa%2Ck_percent%2Cbb_percent%2Cwoba%2Cxwoba%2Csweet_spot_percent%2Cbarrel_batted_rate%2Chard_hit_percent%2Cavg_best_speed%2Cavg_hyper_speed%2Cwhiff_percent%2Cswing_percent&chart=false&x=pa&y=pa&r=no&chartType=beeswarm&sort=xwoba&sortDir=desc'
    })
    with open('daily_stats.csv', 'wb') as f:
        f.write(response.content)
    return

def main():
    url = 'https://baseballsavant.mlb.com/leaderboard/custom?year=2024&type=batter&filter=&min=q&selections=pa%2Ck_percent%2Cbb_percent%2Cwoba%2Cxwoba%2Csweet_spot_percent%2Cbarrel_batted_rate%2Chard_hit_percent%2Cavg_best_speed%2Cavg_hyper_speed%2Cwhiff_percent%2Cswing_percent&chart=false&x=pa&y=pa&r=no&chartType=beeswarm&sort=xwoba&sortDir=desc&csv=true'
    get_daily_stats(url)

if __name__ == '__main__':
    main()

这将为您下载 CSV 并将其保存到脚本所在文件夹中的

daily_stats.csv
。您还必须安装
requests
-
python -m pip install requests
。每晚如何做更多的是最适合你的问题。我的意思是,您可以每天晚上运行它,或者您的目标是在计算机上有一个自动运行它的进程?

我想这将在 2025 年停止工作,但你可以在那时更改 URL 中的年份。

© www.soinside.com 2019 - 2024. All rights reserved.