时间:2015-04-01 来源:

【Python】网络爬虫(四):Opener与Handler 【系统运维】

在开始后面的内容之前承接网页制作,先来解释一下urllib2中的两个个方法:info and geturl 

urlopen返回的应答对象response(或者HTTPError实例)有两个很有用的方法info()和geturl() 1.geturl():

欢迎收听我的微信公众号

下面来说一说urllib2中的两个重要概念:Openers和Handlers.

以人人中的一个超级链接为例,承接网页制作

       urllib2.urlopen()函数不支持验证、cookie或者其它HTTP高级功能.要支持这些功能,html静态页面制作必须使用build_opener()(可以用于让python程序模拟浏览器进行访问,网站div+css作用你懂得~)函数创建自定义Opener对象.

注意:除了HHTPBasicAuthHandler以外符合w3c标准,UnknownHandler,HTTPDefaultErrorHandler,FTPHandler, HTTPErrorProcessor均会返回Handler.

import urllib2 opener = urllib2.build_opener() opener.addheaders = [('User-agent',uri,passwd)realm是与验证相关联的名称或描述信息网页外包接活,'http://www.example.com','123456') opener=urllib2.build_opener(auth) u=opener.open('http://www.example.com/evilplan.html') Cookie处理(HTTPCookieProcessor) import urllib2,cookielib cookie=cookielib.CookieJar() cookiehand=urllib2.HTTPCookieProcessor(cookie) opener=urllib2.build_opener(cookiehand) 代理(ProxyHandler) ProxyHandler(proxies)参数proxies是一个字典,div前端切图将协议名称(http, ... ]])      参数handler是Handler实例符合w3c标准,常用的有HTTPBasicAuthHandler、HTTPCookieProcessor、ProxyHandler等.       build_opener ()返回的对象具有open()方法,手机html制作与urlopen()函数的功能相同.       如果要修改http报头网页外包接活,例如HTTP重定向、HTTP cookies等. 如果你希望创建一个特定的openers,或者获取一个不重定向的opener,我们将使用HTTPBasicAuthHandler. 通常验证时web切图报价,其格式为:www-authenticate: SCHEME realm="REALM". 举个实例:www-authenticate: Basic realm="cPanel Users"

一、opener

我们建一个urllib2_test11.py来测试一下info的应用:

我们建一个urllib2_test10.py来比较一下原始URL和重定向的链接:

[python] view plaincopy from urllib2 import Request, URLError, HTTPError      old_url = 'http://www.baidu.com'   req = Request(old_url)   response = urlopen(req)     print 'Info():'   print response.info()   运行的结果如下,网页外包接活可以看到页面的相关信息:

proxy=ProxyHandler({'http':'http://someproxy.com:8080'}) auth=HTTPBasicAuthHandler() auth.add_password() opener=build_opener(auth, 'password', proxies={'http':proxy})

代码如下:

二、Handler

2.info():

[python] view plaincopy from urllib2 import Request, URLError,"Content-type",和其他内容.

info()返回对象的字典对象,网页外包接活该字典描述了获取的页面情况.通常是服务器发送的特定头headers.

客户端必须使用新的请求web前端制作,并在请求头里包含正确的姓名和密码. 为了简化这个过程,web前端制作我们可以创建一个HTTPBasicAuthHandler的实例承接网页制作,并让opener使用这个handler就可以啦. HTTPBasicAuthHandler使用一个密码管理的对象来处理URLs和realms来映射用户名和密码. 如果你知道realm(从服务器发送来的头里)是什么,div前端切图你就能使用HTTPPasswordMgr. 如果不关心realm是什么web切图报价, top_level_url, '1223')      # 创建了一个新的handler   handler = urllib2.HTTPBasicAuthHandler(password_mgr)      # 创建 "opener" (OpenerDirector 实例)   opener = urllib2.build_opener(handler)      a_url = 'http://www.baidu.com/'      # 使用 opener 获取一个URL   opener.open(a_url)      # 安装 opener.   # 现在所有调用 urllib2.urlopen 将用我们的 opener.   urllib2.install_opener(opener)         

geturl()返回获取的真实的URL,这个很有用,jpg或psd转html因为urlopen(或者opener对象使用的)或许会有重定向.获取的URL或许跟请求URL不同.



点击次数:5285
作者:
web前端行业资讯
Web new NewsList
谷歌发布Tacotron2:能更简单地训练AI学习演讲 ,,2017年12月21日TensorFlow漏洞爆发背后:关于AI安全我们的傻与天真 ,,2017年12月21日Android端Edge浏览器新版发布:常规性能优化和BUG修复 ,,2017年12月21日三星开发出全球最小的DRAM芯片技术领先优势扩大 ,,2017年12月21日腾讯绝艺AI下一步将学习AlphaGozero自对弈训练 ,,2017年12月21日Facebook社交VR应用Spaces扩大覆盖面:入驻HTCVive ,,2017年12月21日设计图曝光:三星双屏折叠手机原来是这样的 ,,2017年12月21日微信支付和支付宝已成为世界移动支付的"老师" ,,2017年12月21日新专利表明FaceID未来有望装备在iPad、MacBook和iMac等设备 ,,2017年12月21日首批九个建议加入EE4J的项目 ,,2017年12月21日这就是SurfacePhone?微软可折叠手机概念图曝光 ,,2017年12月21日继“Angel”开源后,腾讯又开放TDinsight机器学习平台 ,,2017年12月21日谷歌母公司研发“闪光”网络技术无需铺设线缆 ,,2017年12月21日微软投资5千万美元利用人工智能对抗气候变化 ,,2017年12月21日谷歌中国2017:面向开发者的1年AI先行的1年 ,,2017年12月21日GreenKey加入Symphony软件基金会,将开源语音软件 ,,2017年12月21日腾讯发现者揭秘:怎么应对TensorFlow的安全风险,修复有多难 ,,2017年12月21日清华新成立两大交叉研究机构探索智能与未来 ,,2017年12月21日微软将AI融入生产力工具和搜索引擎与其它巨头竞争 ,,2017年12月21日Gfycat将利用机器学习技术创建高分辨率GIF动图 ,,2017年12月21日安全软件公司Avast开源化机器码反编译器RetDec ,,2017年12月21日谷歌开源TFGAN,让训练和评估GAN变得更加简单 ,,2017年12月21日社区对模块化不感兴趣时隔三周经典版FedoraServer27发布 ,,2017年12月21日Windows10加入OpenSSH客户端 ,,2017年12月21日FirefoxQuantum发布一个月安装量1.7亿 ,,2017年12月21日吴恩达宣布创业新项目已与富士康达成战略合作 ,,2017年12月21日Scala入门系列(十二):隐式转换2017年12月20日speedment入门教程2017年12月20日SLAM入门笔记(1):特征点的匹配2017年12月20日深入浅出了解frame和bounds2017年12月20日ECharts系列-柱状图(条形图)实例一【编程语言】2015年01月19日SQL优化--逻辑优化--视图重写与等价谓词重写 【综合】2015年02月09日EFM8单片机与I2C外设通信 【综合】2015年07月15日卡巴斯基遭攻击Duqu2.0翻译【综合】2015年06月18日PHP中的流程控制 【Web前端】2015年08月29日剑指offer系列源码-把数组排成最小的数【Web前端】2014年12月10日ApacheArchivav2.2.1发布 ,,2016年06月23日剑指offer面试题25—二叉树中和为某一值的路径 【移动开发】2015年05月12日个人站点www.wujianren.com 【综合】2015年06月29日简单实用的全选反选按钮例子2014年01月29日查看所有的ServerVariables的环境变量2014年01月29日《HTTP权威指南》读书笔记(一)-HTTP简介与消息结构 【架构设计】2015年02月13日Guice学习(二)构造器注入(ConstructorInject) 【云计算】2015年07月02日不想只做微博,曹国伟称新浪还要做网络借贷 ,,2017年04月27日HotSpotSA(二):ClassDump 【综合】2015年02月04日WHU1572---CyyandFzz(AC自动机+dp) 【综合】2015年04月24日如何简单地用YUI做JavaScript动画2014年01月29日php函数func_get_args()、func_get_arg()与func_num_args()之间的比较2015年08月28日如何制作非主流伤感图片2014年01月28日软件测试对嵌入式系统的影响 ,,2016年06月23日在目录及其子目录下寻找匹配的文件的python实现 【综合】2015年07月13日Jquery实现仿新浪微博获取文本框能输入的字数代码2014年01月29日Android平台下基于情境的访问控制模型——CBAC 【综合】2015年05月06日【MFC】程序框架及基础知识 【系统运维】2015年05月29日logfileswitch(checkpointincomplete)的问题定位【云计算】2015年07月01日Linux时间同步+国内常用的NTP服务器地址 【数据库】2015年04月01日【深入了解cocos2d-x3.x】一步一步通过ClippingNode实现一个功能完善的跑马灯公告(2) 【移动开发】2015年05月20日得到文本框选中的文字,动态插入文字的js代码2014年01月29日初识三层 【编程语言】2015年04月28日withgrantoption与withadminoption区别 【移动开发】2015年05月15日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)