问题标签用户 关于python urllib2.urlopen批量打开网页,有网页打不开的问题

tianmaoying 2014-02-15 12:37:34
我使用urllib2.urlopen批量打开多个网页,经常会有网页打不开。
比如说我依次开10个网页,网页的域名都一样(如http://item.taobao.com/item.htm?id=),只是具体的地址不一样(ID的值不一样),总有几个网页返回的是空数据。

我试过的打开网页的三种方式:
1 直接打开网页
req = urllib2.urlopen(url)
2 加入HTTP头
request = urllib2.Request()
request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1')
req = urllib2.urlopen(request)`
3 用代理打开
proxy_support = urllib2.ProxyHandler({'http': 'http://121.9.231.82:9999'})
opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
urllib2.install_opener(opener)

也尝试过2与3的结合,但总是有网页返回空数据(req.read() == '')。每次运行程序,打不开网页的URL总是稳定的,
烦请各位高手,大侠分析下原因,小弟在此先谢过了
PS:浏览器访问都是没有问题的
...全文
546 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ImN1 2014-02-17
  • 打赏
  • 举报
回复
C:\>nslookup item.taobao.com Server: localhost Address: 127.0.0.1 Non-authoritative answer: Name: leo.danuoyi.tbcache.com Addresses: 58.63.255.240 58.63.255.250 Aliases: item.taobao.com item.taobao.com.danuoyi.tbcache.com google "抓包" 或 "抓包工具"
tianmaoying 2014-02-17
  • 打赏
  • 举报
回复
好吧,原来nslookup也是有技巧的,我菜了 抓包的工具知道一些,但有针对性的抓取需要的数据,还没做过,先尝试一下吧。先谢过了
ImN1 2014-02-16
  • 打赏
  • 举报
回复
这个可能性很多,你最好用一下抓包工具检测 我说两个可能的原因吧 1.访问太频繁,网路响应不及时,我这边百兆光纤也有迟缓或需要刷新的情况 2.淘宝是好多服务器存放数据的,浏览器一般可以缓存DNS,但自己写程序最好自己也做这个工作。我这边的ISP DNS现在已经不堪负荷,所以运行爬虫前我一般会把列表内的域名都nslookup一次写入HOSTS~
tianmaoying 2014-02-16
  • 打赏
  • 举报
回复
引用 1 楼 snmr_com 的回复:
这个可能性很多,你最好用一下抓包工具检测 我说两个可能的原因吧 1.访问太频繁,网路响应不及时,我这边百兆光纤也有迟缓或需要刷新的情况 2.淘宝是好多服务器存放数据的,浏览器一般可以缓存DNS,但自己写程序最好自己也做这个工作。我这边的ISP DNS现在已经不堪负荷,所以运行爬虫前我一般会把列表内的域名都nslookup一次写入HOSTS~
首先可以确定不是原因1引起的。因为批量打开的时候,第一个URL就返回空 问题2,你是说需要在HOSTS中加入相关的DNS映射么,但通过NSLOOKUP,解析不了像http://item.taobao.com/item.htm?id=的URL 还有其它的一些,抓包不是很熟,有相关URL或者什么资料供查看么,谢谢指教

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧