2016-10-16 1 views
0

Ich arbeite an einem Schachprojekt, für das ich eine sehr große Anzahl von Dateien von ChessTempo herunterladen muss. Abrufen von Dateien Formular-URL in Python gibt leer

Wenn Sie den folgenden Code:

import urllib.request 

url = "http://chesstempo.com/requests/download_game_pgn.php?gameids=" 

for i in range (3,500): 
    urllib.request.urlretrieve(url + str(i),'Games/Game ' + str(i) + ".pgn") 
    print("Downloaded file nº " + str(i)) 

ich die erwartete Liste von 500 ~ Dateien, aber sie sind alle leer, außer der zweiten und dritten Dateien, die die richtigen Daten in ihnen.

Wenn ich die URLs manuell öffne, funktioniert alles perfekt. Was vermisse ich?

Antwort

1

In der Tat kann ich nur Dateien herunterladen 2 & 3, alle anderen sind leer ...

Waren Sie angemeldet, während die Dateien „von Hand“ zugreifen? (Ich nehme an, dass ich einen Webbrowser verwende).

Wenn ja, FYI eine HTTP-Anfrage besteht nicht nur aus der URL, viele andere Informationen werden übertragen. Wenn Sie also nicht die gleichen Informationen erhalten, werden Sie wahrscheinlich nicht dieselbe Anfrage stellen.

In Chrom können Sie die Anforderungen sehen, die Sie innerhalb einer Seite machen.

Von Developer Tools gehen zu Netzwerk>Wählen Sie einen Namen bilden die Liste>Anfrageheaders (See picture)

Die wahrscheinlichste Sache, die Sie suchen können, sind die Cookies

Ich hoffe, es hilft.