Ich versuche, Python urllib2
zu verwenden, um einige Seiten zu lesen, aber für bestimmte URLs zurückgegeben die gleiche Seite.Python - Das Lesen von verschiedenen URLs mit urllib2 ergab die gleichen Ergebnisse?
Die Seite ist eine Anfrage für die Verfügbarkeit des Campingplatzes für einen bestimmten Campingplatz von recreation.gov. Da es auf einem Campingplatz viele Campingplätze geben kann, teilt der letzte Index in url der Seite mit, wie viele Campingplätze aufgelistet werden.
Zum Beispiel listet die Seite startIdx=0
Campingplatz 1 ~ 25, und wenn startIdx=25
die Seite listet Campingplatz 26 ~ 50.
So baute ich einige Urls mit verschiedenen startIdx
aber urllib2
nach der Verwendung der Seite zu lesen, die zurück html waren alle gleich - es scheint irgendwie die startIdx
in URL wurde ignoriert.
Außerdem, wenn ich diese URLs im Browser manuell öffnen, sehen die Seiten normal aus, aber wenn ich webbrowser.open
verwende, um diese URLs zu öffnen, sehen die Seiten komisch aus.
Der kurze Beispielcode dupliziert das Problem, das ich habe:
import urllib2
url1 = 'http://www.recreation.gov/campsiteCalendar.do?page=calendar&contractCode=NRSO&parkId=70928&calarvdate=03/11/2016&sitepage=true&startIdx=0'
url2 = 'http://www.recreation.gov/campsiteCalendar.do?page=calendar&contractCode=NRSO&parkId=70928&calarvdate=03/11/2016&sitepage=true&startIdx=25'
hdr = {'User-Agent': 'Mozilla/5.0'}
request1 = urllib2.Request(url1, headers = hdr)
response1 = urllib2.urlopen(request1)
html1 = response1.read()
request2 = urllib2.Request(url2, headers = hdr)
response2 = urllib2.urlopen(request2)
html2 = response2.read()
In [1]:html1 == html2
Out[2]: True
Ich habe keine andere Wissen darüber, wie die Dinge funktionieren in Anfragen und PHP Sachen zusammen. Also ich bin neugierig, warum verhält sich urllib2
so. Die Python-Version, die ich verwende, ist 2.7
Vielen Dank!
Willkommen bei StackOverflow. Obwohl die Erklärung, die Sie zur Verfügung stellen, vielleicht etwas Licht in das Thema bringt, reicht das nicht aus, um die Frage zu beantworten. Bitte denken Sie über Kommentare in solchen Fällen nach. Es gibt auch einige Probleme mit der technischen/sachlichen Richtigkeit Ihrer Antwort. Sie müssen das Problem selbst weiter untersuchen, wenn Sie eine sinnvolle Antwort geben möchten. Siehe [wie man eine gute Antwort schreibt] (http://stackoverflow.com/help/how-to-answer) – ishmaelMakitla
Meinst du, der HTML-Code, den ich angefordert habe, enthält alle Informationen zu den Campingplätzen, aber der Browser ändert die Art und Weise, ihn anzuzeigen, basierend auf dem ' startIdx' in der URL? Ein bisschen Information, die ich in meiner Frage verpasst habe, ist anders. "StartIdx" hat dieselbe Seite zurückgegeben wie "startIdx = 0". – fengly20
@ fengly20 Der von Ihnen angeforderte HTML enthält wahrscheinlich keine Informationen über die Campingplätze. Die Daten werden wahrscheinlich über JavaScript geladen, sobald die Seite zum Laden bereit ist. Was Sie verwenden, wird es überhaupt nicht laden. – ritlew