从URL中获取文件以触发Python中的下载

时间:2017-06-20 16:31:12

标签: python python-3.x web-scraping

我在网站分析报告平台中有一个网址,它基本上会触发您正在查看的报告的下载/导出。下载的文件本身是CSV,触发下载的链接使用多个附加参数来定义报告中的字段等内容。我要做的是下载链接触发下载的CSV。

我使用的是Python 3.6,而且我被告知我要部署的服务器不支持Selenium或PhantomJS等任何网络平台。有没有人成功完成了这个?

1 个答案:

答案 0 :(得分:0)

如果文件是CSV文件,您可能需要考虑使用请求模块直接下载它的内容,如下所示。

import requests
session=requests.Session()
information=session.get(#the link of the page here)

然后您可以使用CSV模块解码信息并阅读内容,如下所示(应导入csv模块):

decoded_information=information.content.decode('utf-8')
data=decoded_information.splitlines()
data=csv.DictReader(data)

您可以使用for循环访问数据中的每一行,如下所示使用列标题作为字典键,如下所示:

for row in data:
itemdate=row['Date']
...

或者您可以通过将解码内容写入具有以下内容的文件来保存解码内容:

decoded_information=information.content.decode('utf-8')
file=open("filename.csv", "w")
file.write(decoded_information)
file.close

此处提供了一些包含CSV模块文档的链接,以防万一您以前没有使用过它:

https://docs.python.org/2/library/csv.html http://www.pythonforbeginners.com/systems-programming/using-the-csv-module-in-python/

希望这有帮助!