私はいくつかのページを読むのにPython urllib2
を使用しようとしていますが、与えられた異なるURLが同じページを返しました。Python - urllib2を使用して異なるURLを読むと同じ結果が返されましたか?
このページは、recreation.govから特定のキャンプ場のキャンプ場の空き状況を確認するためのものです。キャンプ場にはたくさんのキャンプ場があるかもしれないので、URLの最後のインデックスは、表示されるキャンプ場の数をページに表示します。
たとえば、startIdx=0
の場合、ページにはキャンプサイト1〜25が表示され、startIdx=25
にはキャンプサイト26〜50が表示されます。
startIdx
でいくつかのURLを構築しましたが、urllib2
を使用してページを読むと、返されたHTMLはすべて同じでした。何とかURL内のstartIdx
が無視されたようです。
さらに、これらのURLを手動でブラウザで開くとページは正常に見えますが、私がwebbrowser.open
を使用してページを表示すると奇妙に見えます。
簡単なサンプルコードでは、私がいる問題を複製:
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
私は物事が問い合わせやPHP関連のものでどのように機能するかについての他の知識を持っていません。だから私はなぜurllib2
がこのように振る舞うのか不思議です。私が使っているPythonのバージョンは2.7
ありがとう!
ようこそStackOverflow。あなたが提供する説明は、この問題を明らかにするかもしれませんが、質問に対する答えとしては十分ではありません。このような場合にはコメントを使用することを検討してください。また、あなたの答えの技術的/事実的な正確さにいくつかの問題があります。あなたが意味のある答えを出すには、実際に問題をさらに調査する必要があります。 – ishmaelMakitla
リクエストされたHTMLにすべてのキャンプサイトの情報が含まれていますが、ブラウザがそれに基づいてそれを表示する方法を変更したことを意味しましたか?いいえ、 URLの「startIdx」?私の質問に欠けていた情報の一部は、 'startIdx'が' startIdx = 0'と同じページを返したという点で異なっています。 – fengly20
@ fengly20あなたがリクエストしたHTMLにはおそらくキャンプサイトに関する情報は含まれていません。ページがロード可能な状態になると、データはJavaScript経由でロードされます。あなたが使っているものはまったく読み込まれません。 – ritlew