【Python】urllib2禁止302_301跳转+源码分析

来源:互联网 发布:淘宝国外代购怎么做 编辑:程序博客网 时间:2024/06/03 12:52

我的上一篇文章讲到有扫描备份文件

看上去挺简单但是实现起来有点小复杂 = =

requests 会自动下载文件 urllib2 发现忘了重定向问题

于是加入了关于urllib2的跳转处理

例子

加入a的url是存在合法的  b的url备份不存在,但是b网站对不存在异常的url请求会自动跳转

于是阅读了urllib2的帮助文档后重写了一下

# coding = utf-8import urllib2  a = 'http://www.123.com/1.rar'b = 'http://www.456.comzj.rar'headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102Safari/537.36'}class RedirectHandler(urllib2.HTTPRedirectHandler):    def http_error_301(self, req, fp, code, msg, headers):        pass         def http_error_302(self, req, fp, code, msg, headers):        pass  try:    opener = urllib2.build_opener(RedirectHandler)    response = urllib2.Request(url=b,headers=headers)    req = opener.open(response)    print req.code    if req.code == 200:        print '200'        metarar = req.info()        sizerar = str(metarar.getheaders("Content-Length")[0])        print sizerar    else:        print '302'except:    print '8888'
代码能实现对于网站的备份扫描,准确率还不错

采集了三千左右url进行测试

结果还不错,而且我用的是简洁版的字典,如果调整优化下字典或许能扫出来更多呢



0 0
原创粉丝点击