2017-06-19 2 views
1

私はzipファイルにスペースの書き出しをダウンロードしようとしています。しかし、何とかpythonが空の破損したzipファイルをダウンロードします。ブラウザーでファイルマニュアルをダウンロードするとすべてが正常です。urllib.urlretrieve空のzipファイルをダウンロード

私はそれがColdspeedの答えによって解決だPythonの2.7.13

#!/usr/bin/python 
import xmlrpclib 
import time 
import urllib 

confluencesite = "https://confluence.com" 
server = xmlrpclib.ServerProxy(confluencesite + '/rpc/xmlrpc') 
username = '*' 
password = '*' 
token = server.confluence2.login(username, password) 
loginString = "?os_username=" + username + "&os_password=" + password 
filelist = "" 
start = True 
spacesummary = server.confluence2.getSpaces(token) 
for space in spacesummary: 
    #if space['name'] == "24-codING": 
    # start = True 
    # continue 
    if start: 
     if space['type'] == 'global': 
      print "Exporting space " + space['name'] 
      spaceDownloadUrl = server.confluence2.exportSpace(token, space['key'], 
                   "TYPE_XML", 
                   exportAll['true']) 
      filename = spaceDownloadUrl.split('/')[-1].split('#')[0].split('?')[0] 
      time.sleep(0.5) 
      urllib.urlretrieve(spaceDownloadUrl + loginString, filename) 
      print filename + " saved." 
      f = open("exportedspaces.txt", 'a') 
      f.write(filename + "\n") 
      f.close() 
+0

コードにはzipファイルはありません。 'f = open(" exportedspaces.txt "、 'a')'であるはずですか? – snakecharmerb

+0

@snakecharmerb zipfileは、ダウンロード可能なzipファイルを作成するexportSpace APIアクションによって生成されます。例:Confluence-space-export-122851-90.xml.zip –

+1

おそらく '&'を '&'に変更する必要があります。 –

答えて

2

を使用しています。次の変更:

loginString = "?os_username=" + username + "&os_password=" + password 
to 
loginString = "?os_username=" + username + "&os_password=" + password 
+2

子供たちは、必ずあなたのURLパラメータを浄化してください。 OP、あなたの答えを受け入れて、この質問を閉じてください。乾杯。 –

関連する問題