2012-05-16 40 views
1

我確實看到了一些用Python/HTTP從HTTPS下載文件的方法,但是對於所有這些你需要知道確切的URL。我試圖從一個Web服務下載,並且該URL具有爲了下載該文件而發送的方法和發佈參數,我無法弄清楚該URL要發送什麼。這是代碼片段:從python 3的web服務下載文件

url = 'https://www.example123.com' 
params = { 'user' : 'username', 'pass' : 'password', 'method' : 'getproject', 'getPDF' : 'true' } 
data = urllib.parse.urlencode(params) 
data = data.encode('utf-8') 
request= urllib.request.Request(url, data) 
response = urllib.request.urlopen(request) 
xdata = response.read() 
print(xdata) 

print語句看起來好像它在閱讀PDF格式,但我想保存在某個地方,並不能找到任何方式做到這一點?這裏是打印響應的開始:

b'%PDF-1.6\r%\xe2\xe3\xcf\xd3\r\n12 0 obj\r<</Lin 
+1

'urllib.request.urlretrieve'會保存爲一個文件給你(或者你可以打開一個文件並自己寫回應)。 – geoffspear

回答

1

你必須打開一個文件並寫入它。現在,你只是將它存儲在一個字符串變量中。

with open('yourfile.pdf', 'w') as f: 
    f.write(xdata) 
+1

謝謝,唯一的改變是用二進制模式的'wb'代替'w'。 – user1399120