如何在不使用selenium的情况下使用python通过http请求下载CSV

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

在以下链接:https://www.zacks.com/earnings/earnings-calendar

下图中圈出的是一个 CSV 文件: enter image description here

如何通过http请求库下载CSV文件?我想解析 CSV 而不是 html 表。谢谢!

python http request get
1个回答
0
投票

好的,这分为三个部分:从该网站获取 HTML,解析 CSV 的链接,下载 CSV

1。索取 html 导入请求 导入系统

URL = "https://www.zacks.com/earnings/earnings-calendar"
    
headers = {
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0)          Gecko/20100101 Goanna/6.0 Firefox/102.0 PaleMoon/32.0.1",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language": "en-US,en;q=0.5",
    "Accept-Encoding": "qzip, deflate, br",
}

if not r.ok:
    sys.exit("Could not request url")
r = requests.get(url, headers=headers)

data = request(URL, headers=headers)
print(data)

解析 CSV 我将使用 BeautifulSoup 因为这是我知道如何使用的,但我相信还有其他选择。好的,所以 CSV 不太适合抓取工具,因为它是一些基于 Firefox 告诉我的内容的 blob 文件。这一切都由 javascript 控制并受到良好的把关。如果你想要其他选项卡的数据,那就很困难,因为它们调用 javascript 来切换表。可能通过一些技巧可以弄清楚他们存储此 csv 的位置,但我无法弄清楚。

我相信目前您最好的做法是使用抓取的 HTML 找到表格并将其转换为 CSV。我发现一个在线执行此任务的网站可能有代码可以在网上执行此任务。但它不会为您提供整个数据集。 我对股票市场的数据集了解不多,但我猜测他们是这些数据更友好的在线供应商。根据我的理解,我认为该网站并没有对其公开存在的数据添加太多内容。您需要研究并找到这些数据的原始来源。

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