Python使用urllib2读取不同的url返回相同的结果?

2024-05-15 03:43:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用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

谢谢!你知道吗


Tags: httpurlhdrwww页面urllib2dogov
1条回答
网友
1楼 · 发布于 2024-05-15 03:43:23

网页在运行时可能会更改,而您只请求HTML。可能有一些JavaScript根据URL编码的信息更改页面的内容。如果内容是用PHP在服务器端加载的,那么当服务器在发送内容之前更改HTML时,它将与请求一起出现。JavaScript将在发送后更改HTML。你知道吗

换言之,常规浏览器将使用JavaScript根据URL更改HTML。你的简单请求不会那么做。你知道吗

相关问题 更多 >

    热门问题