2017-06-20 121 views
0

我在網絡分析報告平臺中有一個URL,它基本上會觸發您正在查看的報告的下載/導出。下載的文件本身是一個CSV文件,觸發下載的鏈接使用幾個附加參數來定義報告中的字段等內容。我期望做的是下載該鏈接觸發下載的CSV。從URL中獲取觸發以Python下載的文件

我正在使用Python 3.6,並且我被告知我將部署的服務器不支持Selenium或PhantomJS等任何Webkit。有沒有人成功完成了這個?

+0

爲什麼你不能保存文件的URL,然後直接請求它? –

+0

當你用Selenium做element.click()時,客戶端機器就是下載的目標。所以文件應該在您的Downloads文件夾中。服務器不需要安裝Selenium(除非它也是客戶機)。 –

回答

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'] 
... 

或者你也可以通過他們喜歡的東西寫t將文件保存解碼後的內容他:

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/

希望這有助於!