用Python从动态网页下载CSV文件



CSV文件定期上传到一个已知的固定URL (url_variable)。我想在Python脚本的过程中自动下载该CSV文件的最新迭代。

我尝试使用Pandas,特别是pd.read_csv(url_variable),但我收到了"HTTP错误403:Forbidden.&">

接下来我尝试使用urllib和传递欺骗头(headers_variable),特别是urllib.requests。请求(url_variable,标题= headers_variable)。这个方法很有效。但是,当一个新的CSV文件上传到URL并重复脚本时,返回的是旧的CSV文件。

我怎么能改变我的代码下载新的CSV文件,每次这个块被调用?

检查新的CSV上传的url是否相同。如果是一样的,只要下载就可以了。

下面是一个从内存中下载CSV文件并使用请求和pandas直接读取它的示例:

from io import StringIO
import pandas as pd
import requests

if __name__ == "__main__":

url = 'https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-states.csv'
headers = {"Authorization": "Test"}
response = requests.get(url, headers=headers)
df = pd.read_csv(StringIO(response.text))
print(df.shape)

当然,可以根据需要调整标题。如果文件很大,您可以使用临时文件来处理它,参见:生成临时文件和目录

相关内容

  • 没有找到相关文章

最新更新