Ich möchte eine Datei von einer Webseite herunterladen. Diese Webseite hat nur eine ZIP-Datei (das möchte ich herunterladen), aber wenn ich auf die ZIP-Datei klicke, startet der Download, aber die URL ändert sich nicht (die URL bleibt immer noch im Formular http://ldn2800:8080/id=2800). Wie kann ich das mit Python herunterladen, wenn man bedenkt, dass es keine URL des Formulars http://example.com/1.zip
gibt?Wie Datei mit Python herunterladen, wenn URL nicht geändert wird
Wenn ich direkt auf die Seite http://ldn2800:8080/id=2800 gehe, wird nur diese Seite mit der ZIP-Datei geöffnet, aber nicht ohne Klicken heruntergeladen. Wie lade ich es mit Python herunter?
UPDATE: Im Moment mache ich es so:
if (str(dict.get('id')) == winID):
#or str(dict.get('id')) == linuxID):
#if str(dict.get('number')) == buildNo:
buildTypeId = dict.get('id')
ID = dict.get('id')
downloadURL = "http://example:8080/viewType.html?buildId=26009&tab=artifacts&buildTypeId=" + ID
directory = BindingsDest + "\\" + buildNo
if not os.path.exists(directory):
os.makedirs(directory)
fileName = None
if buildTypeId == linuxID:
fileName = linuxLib + "-" + buildNo + ".zip"
elif buildTypeId == winID:
fileName = winLib + "-" + buildNo + ".zip"
if fileName is not None:
print(dict)
downloadFile(downloadURL, directory, fileName)
def downloadFile(downloadURL, directory, fileName, user=user, password=password):
if user is not None and password is not None:
request = requests.get(downloadURL, stream=True, auth=(user, password))
else:
request = requests.get(downloadURL, stream=True)
with open(directory + "\\" + fileName, 'wb') as handle:
for block in request.iter_content(1024):
if not block:
break
handle.write(block)
Aber, es schafft nur eine Zip in der gewünschten Position, aber das zip nicht geöffnet und hat nichts werden kann. Kann so etwas getan werden: Suchen Sie zum Beispiel nach dem Dateinamen auf der Webseite und laden Sie dann das passende Muster herunter?
Dies sollte Ihnen helfen: http://stackoverflow.com/questions/11002014/downloading-file-with-python-mechanize – bernie
Haben Sie versucht, die Anfrage mit Python auszuführen? Was geschieht? –
@MarcoAcierno Ich habe meine Frage aktualisiert und zeige, was ich gerade mache. – Arshad