【问题标题】:Python: urllib2 get nothing which does existPython:urllib2 什么都不存在
【发布时间】:2015-05-10 18:34:38
【问题描述】:

我正在尝试抓取我的大学网站并设置了 cookie,然后添加标题:

homepage=opener.open("website")
content = homepage.read()
print content

我有时可以得到源代码,但有时什么也得不到。

我不知道发生了什么。

我的代码错了吗?

还是网络很重要?

geturl() 可以用来获得双倍甚至更多的重定向吗?

redirect = urllib2.urlopen(info_url)
redirect_url = redirect.geturl()
print redirect_url

它可以输出最终的 url,但有时会得到中间的。

【问题讨论】:

  • 不要只检查内容,而是尝试检查响应的状态。如果您在短时间内发送了太多请求,则可能是服务器阻止了您和/或关闭了连接。
  • @Andrea Corbellini 是的,它有效! ! :D 但我有一个问题。为什么 python2.x 删除 urllib2 模块,并使用 urllib?(我认为 urllib2 是升级版本...)
  • @Hugo Python 3 的 urllib 是 Python 2 的 urllib2 的增强版,你可以把它想象成“urllib3”。

标签: python web-scraping web-crawler urllib2


【解决方案1】:

与其使用 urlopen 解决重定向问题,不如使用更强大的请求库:http://docs.python-requests.org/en/latest/user/quickstart/#redirection-and-history

r = requests.get('website', allow_redirects=True)
print r.text

【讨论】:

  • 不起作用:(.每个重定向响应获取一个新的cookie并发布到请求中的下一个..
  • 我想出了一种传输 cookie 的方法。
猜你喜欢
  • 2012-06-30
  • 2017-10-05
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 2020-03-22
相关资源
最近更新 更多