我尝试使用Python urllib2
来读取一些页面,但是对于给定的不同url,返回相同的页面。你知道吗
该页面是对给定露营地的露营地可用性的查询娱乐网站。由于一个营地中可能有许多营地,url中的最后一个索引会告诉页面将列出多少个营地。你知道吗
例如,如果startIdx=0
页面列出营地1~25,如果startIdx=25
页面列出营地26~50。你知道吗
所以我用不同的startIdx
构建了一些url,但是在使用urllib2
读取页面之后,返回的html都是一样的——似乎不知怎么的,url中的startIdx
被忽略了。你知道吗
此外,如果我在浏览器中手动打开这些URL,页面看起来正常,但是如果我使用webbrowser.open
打开这些URL,页面看起来很奇怪。你知道吗
简短的示例代码重复了我遇到的问题:
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
谢谢!你知道吗
网页在运行时可能会更改,而您只请求HTML。可能有一些JavaScript根据URL编码的信息更改页面的内容。如果内容是用PHP在服务器端加载的,那么当服务器在发送内容之前更改HTML时,它将与请求一起出现。JavaScript将在发送后更改HTML。你知道吗
换言之,常规浏览器将使用JavaScript根据URL更改HTML。你的简单请求不会那么做。你知道吗
相关问题 更多 >
编程相关推荐