首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >urllib2 fetch网页

urllib2 fetch网页
EN

Stack Overflow用户
提问于 2013-03-13 19:25:15
回答 1查看 389关注 0票数 0

我有一个让我发疯的问题。我正在使用urllib2来获取很多网址。有一个url有时会返回给我整个html页面,有时不会。这是我的代码:

代码语言:javascript
复制
def find_html(url):
    req = urllib2.Request(url)
    req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB;   rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14')
    page_html = urllib2.urlopen(req).read()

    n = string.find(page_html, "filter clearfix active")
    print "find element:",n

url = "http://it.hotels.com/ho113127/rome-cavalieri-waldorf-astoria-hotels-resorts-roma-italia/"
find_html(url)

为什么会发生这种情况?我哪里做错了?(对于这个url,我不想使用selenium,我想使用urllib2)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-13 19:29:08

我从这个网址得到了200和301 (Moved Permanently)的响应,所以这是一个服务器的问题。

因为urllib2会自动跟踪重定向,所以如果你想阻止处理重定向的页面(如果我理解正确的话,它不包含你想要的信息),你必须检查是否发生了重定向:

代码语言:javascript
复制
...
response = urllib2.urlopen(req)
if response.geturl() == url:
  // no redirect occurred
else:
  // a redirect occurred because the url has changed

这取决于您的确切设置和意图,您必须如何处理它(因为对于某些URL,您可能实际上想要处理重定向的页面)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15383935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档