繁体   English   中英

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

[英]Python - Reading different urls using urllib2 returned the same results?

我正在尝试使用Python urllib2来读取一些页面,但是给定不同的url返回相同的页面。

该页面是对来自recreation.gov的特定露营地的营地可用性的查询。 由于露营地可能有很多露营地,因此url中的最后一个索引会告诉该页面将列出多少个露营地。

例如,如果startIdx=0则页面列出露营地1~25,如果startIdx=25则页面列出露营地26~50。

所以我用不同的startIdx构建了一些url但是在使用urllib2来读取页面之后,返回的html都是一样的 - 似乎某种程度上url中的startIdx被忽略了。

此外,如果我在浏览器中手动打开这些网页,页面看起来很正常,但如果我使用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

谢谢!

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

换句话说,常规浏览器将使用JavaScript基于URL更改HTML。 您的简单请求不会这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM