从触发Python下载的URL获取文件
我在web analytics报告平台中有一个URL,它基本上会触发您正在查看的报告的下载/导出。下载的文件本身是一个CSV,触发下载的链接使用几个附加参数来定义报告中的字段等内容。我想做的是下载链接触发下载的CSV从触发Python下载的URL获取文件,python,python-3.x,web-scraping,Python,Python 3.x,Web Scraping,我在web analytics报告平台中有一个URL,它基本上会触发您正在查看的报告的下载/导出。下载的文件本身是一个CSV,触发下载的链接使用几个附加参数来定义报告中的字段等内容。我想做的是下载链接触发下载的CSV 我使用的是Python3.6,有人告诉我,我将要部署的服务器不支持Selenium或任何像PhantomJS这样的WebKit。有人成功地完成了这个吗? 如果文件是CSV文件,你可能想考虑使用请求模块直接下载它的内容。 import requests session=request
我使用的是Python3.6,有人告诉我,我将要部署的服务器不支持Selenium或任何像PhantomJS这样的WebKit。有人成功地完成了这个吗? 如果文件是CSV文件,你可能想考虑使用请求模块直接下载它的内容。
import requests
session=requests.Session()
information=session.get(#the link of the page here)
然后,您可以使用CSV模块对信息进行解码,并按照您的意愿读取内容,类似于以下内容(应导入CSV模块):
您可以使用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模块的文档链接,以防您以前没有使用过:
希望这有帮助 为什么不能保存文件的URL,然后直接请求它呢?当您使用Selenium执行类似element.click()的操作时,客户机就是下载的目标。因此,该文件应最终位于下载文件夹中。服务器不需要安装Selenium(除非它也是客户机)。
decoded_information=information.content.decode('utf-8')
file=open("filename.csv", "w")
file.write(decoded_information)
file.close