Chinaunix

标题: urllib2和urllib [打印本页]

作者: cloudaice    时间: 2012-01-22 12:30
标题: urllib2和urllib
下面这段程序抓取google翻译的网页会返回一个403的错误
import urllib2
reg = urllib2.Request("http://"+raw_input(u"输入网址\n"))
fd = urllib2.urlopen(reg)
data = fd.read()
print data
但是下面这段程序可以成功抓取网页内容
import urllib
fd = urllib.urlopen("http://"+raw_input(u"输入网址\n"))
data = fd.read()
print data

为什么会出现这样的情况?我想知道这里面具体实现方式到哪里可以查到啊,现在只会按照书上说的依样画葫芦,出现问题了就不知道怎么回事了。
PS:两个程序都是在提示符"输入网址"后输入"translate.google.cn"
作者: thword1    时间: 2012-01-22 14:17
这应该是google屏蔽了爬虫程序的缘故,在urllib2.Request()中设置headers,伪装成浏览器就可以了。
作者: lastfile    时间: 2012-01-23 15:22
或者用python调用ie, 这样肯定没问题
作者: BangBull    时间: 2012-01-29 12:41
一般就是修改 header 了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2