python重定向是什么意思_关于在python中处理重定向

在学习Python的urllib2模块时,作者遇到一个URL处理问题,当尝试获取网页内容时遇到了重定向。虽然预期是收到301、302或303的重定向响应码,但实际上收到了200成功响应码。通过使用Dive into Python的代码,作者发现这是一个临时重定向,但仍然困惑于为何HTTP错误代码是200。在后续的编辑中,作者寻求了解决自动重定向问题的方法。
摘要由CSDN通过智能技术生成

我是python新手,正在尝试学习一些新模块。不管是幸运还是不幸,我选择了urllib2模块,并开始使用它来处理一个给我带来问题的URL。在

首先,我创建了Request对象,然后对response对象调用Read()。它失败了。结果它被重定向了,但错误代码仍然是200。不知道发生了什么事。这是密码--def get_url_data(url):

print "Getting URL " + url

user_agent = "Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 Firefox/14.0.1"

headers = { 'User-Agent' : user_agent }

request = urllib2.Request(url, str(headers) )

try:

response = urllib2.urlopen(request)

except urllib2.HTTPError, e:

print response.geturl()

print response.info()

print response.getcode()

return False;

else:

print response

print response.info()

print response.getcode()

print response.geturl()

return response

我原以为会收到301、302或303,但我看到的是200。这是我看到的反应——

^{pr2}$

有人能解释一下这个URL是什么以及如何处理它吗?我知道我可以使用“处理重定向”部分Diveintopython.net但是在那页上我也看到了同样的回复200。在

编辑:使用DiveintoPython的代码,我看到它是一个临时重定向。我不明白为什么代码中的HTTP错误代码是200。这不应该是实际的返回码吗?在

现在我看得更清楚了,它一点也不奇怪。我正在编辑标题。在

EDIT3:如果urllib2自动遵循重定向,我不确定为什么下面的代码没有得到辣椒网. 在docObj = get_url_data(url)

doc = docObj.read()

soup = BeautifulSoup(doc, 'lxml')

print(soup.prettify())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值