Python - 从网页下载应用程序/ csv数据



我正在使用requests库来获取一个特定的网页,其中包含一个以csv格式下载数据的链接。链接的格式为

<a class="csv-download" download="data.csv" target"_blank"="" style="cursor:pointer" href="data:application/csv;charset=utf-8,%22Date%22%2C%22Volume%2FLength%22%2C%22Length%2FWidth%22%2C%22Weight%20gm%22%0A%2208-Jan-2018%22%2C%22%20%20%20%20%20%20%2023.19%22%2C%22%20%20%20%20%20%20%20%202.13%22%2C%22%20%20%20%20%20%20%20%201.32%22%0A" target="_blank">Download csv</a>

从浏览器单击此链接时,将数据下载到文件download.csv

我需要将其提取为 csv 并存储到文件中。我在项目中使用 BeautifulSoup 来解析 HTML 文件。

如何从 Python 下载 csv 文件?

这是我到目前为止所拥有的

import requests
from bs4 import BeautifulSoup as BS
r = requests.get(url)
soup = BS(r.text)
target_elt = soup.find('a', "csv-download")
# TODO - download the csv data

由于您需要的文件内容存储在 target_elthref 属性中,从逗号之后开始,您可以在第一个逗号上拆分该属性的内容,然后解码第一个逗号之后的部分:

import urllib
import requests
from bs4 import BeautifulSoup as BS
r = requests.get(url)
soup = BS(r.text)
target_elt = soup.find('a', "csv-download")
header, encoded = target_elt.attrs["href"].split(",", 1)
data = urllib.unquote(encoded)
with open("data.csv", "w") as fp:
 fp.write(data)  

最新更新