pythonurllib2技术补充参考

pythonurllib2技术补充参考

ID:37081098

大小:61.00 KB

页数:13页

时间:2019-05-17

pythonurllib2技术补充参考_第1页
pythonurllib2技术补充参考_第2页
pythonurllib2技术补充参考_第3页
pythonurllib2技术补充参考_第4页
pythonurllib2技术补充参考_第5页
资源描述:

《pythonurllib2技术补充参考》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、pythonurllib2技术补充参考--中文版此文由我(54snapple)翻译自http://www.voidspace.org.uk/python/articles/urllib2.shtml。原文标题:urllib2-TheMissingManual-副标题:HOWTOFetchInternetResourceswithPython。英文版权归文章原作者所有。转载请保留以上信息。行文仓促,未作校正,请谅解指正。简介:urllib2是python的一个获取url(UniformResourceLoc

2、ators,统一资源定址器)的模块。它用urlopen函数的形式提供了一个非常简洁的接口。这使得用各种各样的协议获取url成为可能。它同时也提供了一个稍微复杂的接口来处理常见的状况-如基本的认证,cookies,代理,等等。这些都是由叫做opener和handler的对象来处理的。urlib2支持获取url的多种url协议(以url中“:”前的字符串区别,如ftp是ftp形式的url协议),用它们关联的网络协议(如HTTP,FTP)。这个教程著重于最普遍的情况--HTTP。最简单的情况下urlopen用起

3、来非常简单。但随着你打开HTTPur时遇到错误或无意义的事情,你需要对HTTP的一些理解。对HTTP最权威最容易让人理解的参考是RFC2616。这是一个技术文档,而且不太容易读懂。这篇HOWTO意在用足够关于HTTP的细节阐明urllib2,使你明白。它的意图不在替换urllib2docs,而是对它们的一个补充。获取url:以下是获取url最简单的方式:importurllib2response=urllib2.urlopen('http://python.org/')html=response.read

4、()许多urlib2的使用都是如此简单(注意我们本来也可以用一个以“ftp:”“file:”等开头的url取代“HTTP”开头的url).然而,这篇教程的目的是解释关于HTTP更复杂的情形。HTTP建基于请求和回应(requests&responses)-客户端制造请求服务器返回回应。urlib2用代表了你正在请求的HTTPrequest的Request对象反映了这些。用它最简单的形式,你建立了一个Request对象来明确指明你想要获取的url。调用urlopen函数对请求的url返回一个respons对

5、象。这个respons是一个像file的对象,这意味着你能用.read()函数操作这个respon对象:importurllib2req=urllib2.Request('http://www.voidspace.org.uk')response=urllib2.urlopen(req)the_page=response.read()注意urlib2利用了同样的Request接口来处理所有的url协议。例如,你可以像这样请求一个ftpRequest:req=urllib2.Request('ftp://e

6、xample.com/')对于HTTP,Request对象允许你做两件额外的事:第一,你可以向服务器发送数据。第二,你可以向服务器发送额外的信息(metadata),这些信息可以是关于数据本身的,或者是关于这个请求本身的--这些信息被当作HTTP头发送。让我们依次看一下这些。数据:有时你想向一个URL发送数据(通常这些数据是代表一些CGI脚本或者其他的web应用)。对于HTTP,这通常叫做一个Post。当你发送一个你在网上填的form(表单)时,这通常是你的浏览器所做的。并不是所有的Post请求都来自HT

7、ML表单,这些数据需要被以标准的方式encode,然后作为一个数据参数传送给Request对象。Encoding是在urlib中完成的,而不是在urlib2中完成的。importurllibimporturllib2url='http://www.someserver.com/cgi-bin/register.cgi'values={'name':'MichaelFoord',          'location':'Northampton',          'language':'Python'}

8、data=urllib.urlencode(values)req=urllib2.Request(url,data)response=urllib2.urlopen(req)the_page=response.read()注意有时需要其他的Encoding(例如,对于一个来自表单的文件上传(fileupload)--详细内容见HTMLSpecification,FormSubmission)。如果你不传送数据参数,urlib2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。