urllib2 官方文档翻译

自己翻译一遍加深记忆吧,翻译不好的地方还请多多谅解,如需转载请附上本文地址并注明!
官方原文地址传送门

urllib2
组件定义了一些帮助你在一个复杂世界打开URLs(绝大分在HTTP协议下)的类和函数 -- 基础,摘要式身份验证,重定向,cookie等等d�。

注意⚠️:
urllib2 组件在Python3已经被分割成了几个模块,分别为:urllib.request, urllib.parse, urllib.error
2to3 工具将会在转换代码到Python3时自动导入对应文件。

urlopen

urllib2.urlopen(url[, data[, timeout[, cafile[, capath[, cadefault[, context]]]]])
打开url参数指定的字符串或者Request对象类型的URL链接地址

1. data 参数

data参数可能是一个指定了附加发送给服务器数据的字符串,或则是None如果不需要发送。在目前,HTTP协议请求是仅有的使用data的请求;HTTP协议请求将会是POST方式而不是GET如果提供了data参数。 data 参数应是一个标准的application/x-www-form-urlencoded 格式的缓存(buffer)。 urllib.urlopen() 函数接受一个字典或者二元组序列参数然后返回一个上述格式的字符串。urllib2组件使用包含 connection:close的头部发送HTTP/1.1请求。

2. timeout 参数

可选的 timeout 指定了一个以秒为单位的超时参数来屏蔽比如尝试链接的操作
(如果没有设定,默认的全局超市设置将会被采用)。 这个参数只有对 HTTP,HTTPS和 FTP 链接起作用。

3. cafile 和 capath 参数

可选的 cafilecapath 参数明确了一个用于HTTPS请求的受信任CA证书集。cafile应指向单个包含CA证书集的文件,而capath应指向可哈希的证书文件目录。更多信息查看ssl.SSLContext.load_verify_locations()

4.cadefault 参数

cadefault参数是忽略的。

5. context 参数

如果context 存在,它一定是一个描述不同SSL选项的 ssl.SSLContext 实例。查看HTTPSConnection获取更多的细节。

6. 返回值

该方法用三个额外的方法返回一个文件形式的(file-like)对象

  • geturl() — 返回从URL获取的资源,通常用来判定是否跟随跳转。
  • info() — 以 mimetools.Message 实例的格式返回页面的元数据(meta-information) ,比如头部。(查看 HTTP Headers)
  • getcode() — 返回HTTP响应的状态码。
7.其它

发生错误的时候以 URLError 报错
注意,返回值可能是None,如果没有处理器处理请求(然而默认安装的全局 OpenerDirector使用UnknownHandler来确保请求没有被处理)。

另外,如果代理设置被检测到(比如,当 _proxy environment 变量像 http_proxy被设置),ProxyHandler 会默认安装来确保请求在整个代理中会被处理。

2.6版本:新增 timeout
2.79版本:增加 cafile, capath, cadefault, context

instal_opener

urllib2.install_opener(opener)
安装一个openerDicrector 实例作为默认的全局打开者(opener)。 只有在你想要 urlopen使用特定的打开者的时候菜安装它;否则,简单地调用OpenerDicrector.open()来替换urlopen()。 这种方式不会检查是否是真的OpenerDicrecot,任何带有合适接口的类都会起作用。

build_opener

urllib2.build_opener([handler, ...])
返回OpenerDirector实例,以设定的次序链接处理器(handlers)。 handlers可以是BaseHandler的实例,或者BaseHandler的子类(这个子类必须有不带参数的构造器)。 以下类的实例将会在handlers之前,除非handlers包含它们、它们的实例或者子类: ProxyHandler(如果代理设置被检测到),UnknownHandler, HTTPHandler, HTTPDefaultErrorHandler, HTTPRedirectHandler, FTPHandler, FileHandlere, HTTPErrorProcessor
如果Python 安装了SSL支持( 比如,ssl组件是否可以被导入), HTTPHandler也将会被添加。
从 Ptthon2.3 开始 BaseHandler 子类也会它的handler_order属性来改它在处理器列表中的位置。

urillib2.request类

class urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
URL请求的抽象类

  • url 包含有效URL的字符串

  • data 参数可能是一个指定了附加发送给服务器数据的字符串,或则是None如果不需要发送。在目前,HTTP协议请求是仅有的使用data的请求;HTTP协议请求将会是POST方式而不是GET如果提供了data参数。 data 参数应是一个标准的application/x-www-form-urlencoded 格式的缓存(buffer)。 urllib.urlopen() 函数接受一个字典或者二元组序列参数然后返回一个上述格式的字符串。urllib2组件使用包含 connection:close的头部发送HTTP/1.1请求。

  • headers 应是一个字典,键值对将被作为参数传递给add_header()。这常用于“欺骗” User-Agent 这个头部值,该值被浏览器用于鉴别浏览者。一些HTTP服务器仅允许来自普通浏览器的请求而不是脚本。比如,Mozilla 的火狐(FireFox)浏览器可能被识别为 Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11 ,而 urllib2 的默认用户代理字符串是 Python-urllib/2.6( python2.6中)

The final two arguments are only of interest for correct handling of third-party
最后的两个参数仅是为了校正处理感兴趣的第三方HTTP cookies 数据。
HTTP cookies:

  • origin_req_host 应是最初处理请求的主机,默认是RFC 2965。 默认等于cookielib.request_host(self)。 这是用户初始化的最开始请求的主机名或IP地址。 比如请求的是一份HTML 文档中的一幅图片,这应是发起获取含有图片页面的请求方主机子。
  • unverifiable 应如RFC2965,指明请求是否是无法校验的。默认为False。 无法校验的请求的URL是用户无法选择批准通过的 。比如,请求包含在HTML文档中的一幅图片,用户无法选择批准自动获取的图片,这时的值true

urllib2.OpennerDirector

class urllib2.OpenerDirector**
OpenerDirector 类经由 BaseHandlers 链接起来的URLs打开。 它管理处理器链和错误恢复 。

urllib2.BaseHandler

class urllib2.BaseHandler**
这是所有处理器的基类,它仅仅处理一些简单的注册机制(译:简单初始化下)。

urllib2.HTTPDefaultErrorHandler

class urllib2.HTTPDefaultErrorHandler**
一个定义了默认HTTP错误响应处理器的类;所有的响应都会被转入HTTPError异常处理。

urllib2.BaseHandler

class urllib2.HTTPRedirectHandler**
处理重定向的类。

urllib2.BaseHandler

class urllib2.HTTPCookieProcessor([cookiejar])¶
处理HTTP Cookies的类。

urllib2.BaseHandler

class urllib2.ProxyHandler([proxies])¶
使请求经历代理。如果 proxies 有设置,它一定是一个映射了协议名字到代理URL的字典。(译:字典[协议名]=代理的URL)默认的处理器的作用是从环境变量<protocol>_proxy中读取代理列表。
如果没有设置环境变量,那么在Windows中,环境变量代理设置是从注册表的Internet Setting部分获取;在Mac OS X中,代理环境代理信息是从OS X System Congfiguration Framework(系统配置框架)获取。
传入一个空字典可以取消自动侦测代理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 一、概述 urllib2是Python的一个针对URLs的库。他以urlopen函数的形式提供了一个非常简单的...
    MiracleJQ阅读 1,426评论 0 5
  • urllib2是Python的一个获取URLs的组件。他以urlopen函数的形式提供了一个非常简单的接口,具有利...
    查无此人asdasd阅读 881评论 0 3
  • Python爬虫入门(urllib+Beautifulsoup) 本文包括:1、爬虫简单介绍2、爬虫架构三大模块3...
    廖少少阅读 9,642评论 0 6
  • 一、网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spide...
    随风化作雨阅读 1,029评论 0 0
  • 1. 如果不是馨月亲眼看到范建搂着那个女孩亲热的走进宾馆,打死她也不会相信这个一向沉默寡言的男人会背叛自己。 身边...
    姜小夕阅读 265评论 6 5