免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 12143 | 回复: 3
打印 上一主题 下一主题

为什么python使用urllib2这里会出现错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-06 17:37 |只看该作者 |倒序浏览
#!/usr/bin/python
# -*- coding:utf-8 -*-
import urllib2
header = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
req = urllib2.Request(
     url= "https://www.google.com.hk/search?num=100&hl=zh-CN&newwindow=1&safe=strict&q=inurl%3Aadmin_login.aspx&oq=inurl%3Aadmin_login.aspx&gs_l=serp.3...125521.131943.0.132041.38.31.1.0.0.3.209.2367.23j3j1.27.0...0.0...1c.1.bvH-WnKtKjg",headers = header
    )
r = urllib2.urlopen(req).read()
print r

代码如上,我需要伪造http来访问这个连接。可是出现了以下错误:



  File "C:\Python27\lib\urllib2.py", line 615, in http_error_302
    self.inf_msg + msg, headers, fp)
urllib2.HTTPError: HTTP Error 302: The HTTP server returned a redirect error that would lead to an infinite loop.
The last 30x error message was:
Found

论坛徽章:
0
2 [报告]
发表于 2012-11-07 00:16 |只看该作者
本帖最后由 crifan 于 2012-11-07 00:18 编辑

表面现象看起来是,你发送的地址给google服务器,但是此地址有问题,导致人家返回你错误,说是:
HTTP Error 302: The HTTP server returned a redirect error that would lead to an infinite loop.

而此地址,看起来,你是从浏览器之类的地方,拷贝过来的。
但是,实际上,如果需要程序模拟此过程的话,需要找到此地址中的各种参数,即:
num=100
hl=zh-CN
newwindow=1
safe=strict
q=inurl%3Aadmin_login.aspx
oq=inurl%3Aadmin_login.aspx
gs_l=serp.3...125521.131943.0.132041.38.31.1.0.0.3.209.2367.23j3j1.27.0...0.0...1c.1.bvH-WnKtKjg
中每个参数的值,是如何获得的,
然后再用程序去模拟过程,生成对应的参数,
然后才是去将此地址发送给人家的google的服务器,才能获得你所想要的结果的。

总之一句话,先要自己搞懂内部执行的过程,然后才是用程序模拟此过程。

如何搞懂网页内部执行的逻辑过程,可参考:
【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程

【教程】如何利用IE9的F12去分析网站登陆过程中的复杂的(参数,cookie等)值(的来源)

如何用python代码把类似过程写出来,可参考:
【教程】模拟登陆网站 之 Python版

如果对于本身网页抓取方面的概念不了解,可参考:
【整理】关于抓取网页,分析网页内容,模拟登陆网站的逻辑/流程和注意事项

如果都看完了,看懂了,再回来折腾你自己的这个问题,你就会发现,应该很容易就解决了。

论坛徽章:
0
3 [报告]
发表于 2012-11-07 17:06 |只看该作者
回复 2# crifan


    谢谢楼上

论坛徽章:
0
4 [报告]
发表于 2012-11-08 07:41 |只看该作者
对,这个链接是不能直接作为参数的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP