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