python模块urllib2详解二

Urllib2库丨Python爬虫基础入门系列(12) 【福利+1】Python中的 Urllib2 库可以用来抓取网页。在学Python爬虫的你,进来看看吧~ 阅读详情

本文转自:http://www.pythontab.com/html/2014/pythonhexinbiancheng_1128/928.html

urllib2--An extensible library for opening URLs using a variety of protocols;是Python的一个获取URLs(Uniform Resource Locators)的组件。
以urlopen函数的形式提供了一个非常简单的接口,这是具有利用不同协议获取URLs的能力,同样提供了一个比较复杂的接口来处理一般情况,例如:基础验证,cookies,代理和其他。它们通过handlers和openers的对象提供。

urllib2支持获取不同格式的URLs(在URL的":"前定义的字串,例如:"ftp"是"ftp:python.ort/"的前缀),它们利用它们相关网络协议(例如FTP,HTTP)进行获取。

最权威的HTTP文档当然是RFC 2616(http://rfc.net/rfc2616.html)。

获取 URLs

代码实例:

1
2
3
import  urllib2 
response  =  urllib2.urlopen( 'http://python.org/' )#"http:",URL同样可以使用"ftp:","file:"等等来替代)。 
html  =  response.read()

HTTP是基于请求和应答机制的--客户端提出请求,服务端提供应答。urllib2用一个Request对象来映射你提出的HTTP请求,在它最简单的使用形式中你将用你要请求的地址创建一个Request对象,通过调用urlopen并传入Request对象,将返回一个相关请求response对象,这个应答对象如同一个文件对象,所以你可以在Response中调用.read()。

1
2
3
4
import  urllib2 
req  =  urllib2.Request( 'http://www.pythontab.com' ) 
response  =  urllib2.urlopen(req) 
the_page  =  response.read()

记得urllib2使用相同的接口处理所有的URL头。例如你可以像下面那样创建一个ftp请求。

req = urllib2.Request('ftp://example.com/')

在HTTP请求时,允许你做额外的两件事。首先是你能够发送data表单数据,其次你能够传送额外的关于数据或发送本身的信息("metadata")到服务器,此数据作为HTTP的"headers"来发送。

Data数据

通常URL与CGI[通用网关接口]脚本,或其他WEB应用程序挂接。在HTTP中,这个经常使用熟知的POST请求发送。这个通常在你提交一个HTML表单时由你的浏览器来做。

并不是所有的POSTs都来源于表单,你能够使用POST提交任意的数据到你自己的程序。一般的HTML表单,data需要编码成标准形式。然后做为data参数传到Request对象。编码工作使用urllib的函数而非urllib2。

代码实例:

1
2
3
4
5
6
7
8
9
10
import  urllib 
import  urllib2 
url  =  'http://www.pythontab.com' 
values  =  { 'name'  :  'Michael Foord' , 
           'location'  :  'pythontab' , 
           'language'  :  'Python'  } 
data  =  urllib.urlencode(values) 
req  =  urllib2.Request(url, data) 
response  =  urllib2.urlopen(req) 
the_page  =  response.read()

GET和POST请求的不同之处是POST请求通常有"副作用",它们会由于某种途径改变系统状态(例如提交成堆垃圾到你的门口)。

尽管HTTP标准说的很清楚POST通常会产生副作用,GET请求不会产生副作用,但没有什么可以阻止GET请求产生副作用,同样POST请求也可能不产生副作用。Data同样可以通过在Get请求的URL本身上面编码来传送。

代码实例:

1
2
3
4
5
6
7
8
9
10
11
12
>>>  import  urllib2 
>>>  import  urllib 
>>> data  =  {} 
>>> data[ 'name' ]  =  'Somebody Here' 
>>> data[ 'location' ]  =  'pythontab' 
>>> data[ 'language' ]  =  'Python' 
>>> url_values  =  urllib.urlencode(data) 
>>>  print  url_values 
name = blueelwang + Here&language = Python&location = pythontab 
>>> url  =  'http://www.pythontab.com' 
>>> full_url  =  url  +  '?'  +  url_values 
>>> data  =  urllib2. open (full_url)

Headers

有一些站点不喜欢被程序(非人为访问)访问,或者发送不同版本的内容到不同的浏览器。默认的urllib2把自己作为“Python-urllib/x.y”(x和y是Python主版本和次版本号,例如Python-urllib/2.5),这个身份可能会让站点迷惑,或者干脆不工作。浏览器确认自己身份是通过User-Agent头,当你创建了一个请求对象,你可以给他一个包含头数据的字典。下面的例子发送跟上面一样的内容,但把自身

模拟成Internet Explorer。

1
2
3
4
5
6
7
8
9
10
11
12
13
import  urllib 
import  urllib2 
url  =  'http://www.pythontab.com' 
user_agent  =  'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' 
   
values  =  { 'name'  :  'Michael Foord' , 
           'location'  :  'pythontab' , 
           'language'  :  'Python'  } 
headers  =  {  'User-Agent'  : user_agent } 
data  =  urllib.urlencode(values) 
req  =  urllib2.Request(url, data, headers) 
response  =  urllib2.urlopen(req) 
the_page  =  response.read()

response应答对象同样有两个很有用的方法。看下面的节info and geturl,我们将看到当发生错误时会发生什么。

Handle Exceptions处理异常

当urlopen不能够处理一个response时,产生urlError(不过通常的Python APIs异常如ValueError,TypeError等也会同时产生)。

HTTPError是urlError的子类,通常在特定HTTP URLs中产生。

URLError

通常,URLError在没有网络连接(没有路由到特定服务器),或者服务器不存在的情况下产生。这种情况下,异常同样会带有"reason"属性,它是一个tuple,包含了一个错误号和一个错误信息。异常有两个比较实用的属性:reason和code;

例如

1
2
3
4
5
>>> req  =  urllib2.Request( 'http://www.pythontab.com' ) 
>>>  try : urllib2.urlopen(req) 
>>>  except  URLError, e: 
>>>     print  e.reason 
>>>

(4, 'getaddrinfo failed') 

HTTPError

服务器上每一个HTTP 应答对象response包含一个数字"状态码"。有时状态码指出服务器无法完成请求。默认的处理器会为你处理一部分这种应答(例如:假如response是一个"重定向",需要客户端从别的地址获取文档,urllib2将为你处理)。其他不能处理的,urlopen会产生一个HTTPError。典型的错误包含"404"(页面无法找到),"403"(请求禁止),和"401"(带验证请求)。

请看RFC 2616 第十节有所有的HTTP错误码

HTTPError实例产生后会有一个整型'code'属性,是服务器发送的相关错误号。

Error Codes错误码

因为默认的处理器处理了重定向(300以外号码),并且100-299范围的号码指示成功,所以你只能看到400-599的错误号码。

BaseHTTPServer.BaseHTTPRequestHandler.response是一个很有用的应答号码字典,显示了RFC 2616使用的所有的应答号。这里为了方便重新展示该字典。

当一个错误号产生后,服务器返回一个HTTP错误号,和一个错误页面。你可以使用HTTPError实例作为页面返回的应答对象response。这表示和错误属性一样,它同样包含了read,geturl,和info方法。

1
2
3
4
5
6
7
>>> req  =  urllib2.Request( 'http://www.python.org/fish.html' ) 
>>>  try : 
>>>     urllib2.urlopen(req) 
>>>  except  URLError, e: 
>>>      print  e.code 
>>>      print  e.read() 
>>>
1
2
3
4
404 
   
  Error 404: File Not Found 
...... etc...

Wrapping it Up包装

所以如果你想为HTTPError或URLError做准备,将有两个基本的办法。我则比较喜欢第二种。

第一个:

1
2
3
4
5
6
7
8
9
10
11
12
from  urllib2  import  Request, urlopen, URLError, HTTPError 
req  =  Request(someurl) 
try : 
     response  =  urlopen(req) 
except  HTTPError, e: 
     print  'The server couldn/' t fulfill the request.' 
     print  'Error code: ' , e.code 
except  URLError, e: 
     print  'We failed to reach a server.' 
     print  'Reason: ' , e.reason 
else : 
     # everything is fine

注意:except HTTPError 必须在第一个,否则except URLError将同样接受到HTTPError。 

第二个:

1
2
3
4
5
6
7
8
9
10
11
12
13
from  urllib2  import  Request, urlopen, URLError 
req  =  Request(someurl) 
try : 
     response  =  urlopen(req) 
except  URLError, e: 
     if  hasattr (e,  'reason' ): 
         print  'We failed to reach a server.' 
         print  'Reason: ' , e.reason 
     elif  hasattr (e,  'code' ): 
         print  'The server couldn/' t fulfill the request.' 
         print  'Error code: ' , e.code 
else : 
     # everything is fine

info and geturl

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

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

info -- 这个返回对象的字典对象,该字典描述了获取的页面情况。通常是服务器发送的特定头headers。目前是httplib.HTTPMessage 实例。

经典的headers包含"Content-length","Content-type",和其他。查看Quick Reference to HTTP Headers(http://www.cs.tut.fi/~jkorpela/http.html)获取有用的HTTP头列表,以及它们的解释意义。

Openers和Handlers

当你获取一个URL你使用一个opener(一个urllib2.OpenerDirector的实例,urllib2.OpenerDirector名字可能有点让人混淆。)正常情况下,我们使用默认opener -- 通过urlopen,但你能够创建个性的openers,Openers使用处理器handlers,所有的“繁重”工作由handlers处理。每个handlers知道如何通过特定协议打开URLs,或者如何处理URL打开时的各个方面,例如HTTP重定向或者HTTP cookies。

如果你希望用特定处理器获取URLs你会想创建一个openers,例如获取一个能处理cookie的opener,或者获取一个不重定向的opener。

要创建一个 opener,实例化一个OpenerDirector,然后调用不断调用.add_handler(some_handler_instance).

同样,可以使用build_opener,这是一个更加方便的函数,用来创建opener对象,他只需要一次函数调用。

build_opener默认添加几个处理器,但提供快捷的方法来添加或更新默认处理器。

install_opener 用来创建(全局)默认opener。这个表示调用urlopen将使用你安装的opener。

Opener对象有一个open方法,该方法可以像urlopen函数那样直接用来获取urls:通常不必调用install_opener,除了为了方便。

Basic Authentication 基本验证

为了展示创建和安装一个handler,我们将使用HTTPBasicAuthHandler,为了更加细节的描述本主题--包含一个基础验证的工作原理。

请看Basic Authentication Tutorial(http://www.voidspace.org.uk/python/articles/authentication.shtml)

当需要基础验证时,服务器发送一个header(401错误码) 请求验证。这个指定了scheme 和一个‘realm’,看起来像这样:www-authenticate: SCHEME realm="REALM".

例如

www-authenticate: Basic realm="cPanel Users"

客户端必须使用新的请求,并在请求头里包含正确的姓名和密码。这是“基础验证”,为了简化这个过程,我们可以创建一个HTTPBasicAuthHandler的实例,并让opener使用这个handler。

HTTPBasicAuthHandler使用一个密码管理的对象来处理URLs和realms来映射用户名和密码。如果你知道realm(从服务器发送来的头里)是什么,你就能使用HTTPPasswordMgr。

通常人们不关心realm是什么。那样的话,就能用方便的HTTPPasswordMgrWithDefaultRealm。这个将在你为URL指定一个默认的用户名和密码。这将在你为特定realm提供一个其他组合时得到提供。我们通过给realm参数指定None提供给add_password来指示这种情况。

最高层次的URL是第一个要求验证的URL。你传给.add_password()更深层次的URLs将同样合适。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建一个密码管理者 
password_mgr  =  urllib2.HTTPPasswordMgrWithDefaultRealm() 
# 添加用户名和密码 
# 如果知道 realm, 我们可以使用他代替 ``None``. 
top_level_url  =  "http://example.com/foo/" 
password_mgr.add_password( None , top_level_url, username, password) 
handler  =  urllib2.HTTPBasicAuthHandler(password_mgr) 
# 创建 "opener" (OpenerDirector 实例) 
opener  =  urllib2.build_opener(handler) 
# 使用 opener 获取一个URL 
opener. open (a_url) 
# 安装 opener. 
# 现在所有调用 urllib2.urlopen 将用我们的 opener. 
urllib2.install_opener(opener)

注意:以上的例子我们仅仅提供我们的HHTPBasicAuthHandler给build_opener。默认的openers有正常状况的handlers--ProxyHandler,UnknownHandler,HTTPHandler,HTTPDefaultErrorHandler, HTTPRedirectHandler, FTPHandler, FileHandler, HTTPErrorProcessor。

top_level_url 实际上可以是完整URL(包含"http:",以及主机名及可选的端口号)例如:http://example.com/,也可以是一个“authority”(即主机名和可选的包含端口号)例如:“example.com” or “example.com:8080”(后者包含了端口号)。权限验证,如果递交的话不能包含"用户信息"部分,例如:“joe@password:example.com”是错误的。

Proxies代理urllib 将自动监测你的代理设置并使用他们。这个通过ProxyHandler这个在正常处理器链中的对象来处理。通常,那工作的很好。但有时不起作用。其中一个方法便是安装我们自己的代理处理器ProxyHandler,并不定义代理。这个跟使用Basic Authentication 处理器很相似。

1
2
3
>>> proxy_support  =  urllib.request.ProxyHandler({}) 
>>> opener  =  urllib.request.build_opener(proxy_support) 
>>> urllib.request.install_opener(opener)

注意:

此时urllib.request不支持通过代理获取https地址。但,这个可以通过扩展urllib.request达到目的。

Sockets and Layers

Python支持获取网络资源是分层结构。urllib 使用http.client库,再调用socket库实现。

在Python2.3你可以指定socket的等待回应超时时间。这个在需要获取网页的应用程序里很有用。默认的socket模型没有超时和挂起。现在,socket超时没有暴露给http.client或者urllib.request层。但你可以给所有的sockets设置全局的超时。

Python中urllib2模块的详细解析 通过本文的解析,我们深入了解了Python中的urllib2模块,它提供了方便的接口来发送HTTP请求和处理服务器的响应。此外,我们还介绍了异常处理的重要性,并展示了如何使用异常处理机制来处理urllib2模块可能引发的异常。它提供了一个方便的接口,可以发送各种类型的HTTP请求,并接收服务器的响应。其中,urllib2模块是一个用于进行HTTP请求的模块。在上述代码中,我们首先定义了一个URL和一个包含用户名和密码的字典作为POST请求的数据。最后,我们发送了POST请求,并读取服务器响应的内容。 阅读详情

相关推荐

使用Python安装urllib2库

根据你所使用的Python版本,你可以选择安装urllib2的替代库urllib.request和urllib.error。在Python 2.x版本中,urllib2是内置的库,但在Python 3.x版本中被拆分为urllib.request和urllib.error两个模块。如果你使用的是Python 2.x版本,那么urllib2库已经是内置的,你无需安装。但如果你使用的是Python 3.x版本,你需要安装urllib2的替代库urllib.request和urllib.error。

WangWEel的博客 3664

Python urllib和urllib2 库的用法

= 小于等于(等价于数学中的 ≤),如果=前面的值大于或者等于后面的值,则返回 True,否则返回 False。= 不等于(等价于数学中的 ≠),如果!< 小于,如果前面的值大于后面的值,则返回 True,否则返回 False。== 等于,如果==两边的值相等,则返回 True,否则返回 False。

D0126_的博客 1082

ADS谐波平衡仿真自动优化报错?三步搞定HB控件设置(附常见错误排查)

本文针对ADS谐波平衡仿真在自动优化中常见的报错问题,提供了三步核心排查法。首先检查并禁用HB控件中可能导致冲突的小信号仿真模式,其次合理化仿真频率与扫描参数设置,最后审视优化变量与目标的定义。通过精准配置HB控件以适配自动优化流程,能有效解决大多数仿真失败问题,确保非线性电路设计顺利进行。

c2d3e4f的博客 792

Python中的urllib2入门

在Python中,​​urllib2​​是一个用于处理URL请求的标准库。它提供了一个简单而强大的接口,用于发送HTTP请求,处理响应和处理URL。本文将介绍​​urllib2​​的基本用法,包括发送GET和POST请求以及处理服务器响应。​​urllib2​​是一个功能强大的Python标准库,用于处理URL请求。本文介绍了​​urllib2​​的基本用法,包括发送GET和POST请求以及处理服务器响应。使用​​urllib2​​,我们可以方便地与服务器进行通信,并获取所需的数据。

牛肉胡辣汤 887

Mike 21如何制作随水深变化的糙率文件

MIKE 21如何制作随水深变化的糙率文件

zhuzhujiayoua的博客 2250

【开发必备插件】iframe嵌套报“拒绝连接请求”的本地解决方法

关键词:iframe 拒绝连接、X-Frame-Options、Chrome 插件、前端调试、Allow X-Frame-Options前几天我在本地项目里调试一个第三方网站的嵌入页面时,遇到了一个非常经典的报错:xxx.com 拒绝了我们的连接请求。熟悉的老前端们一眼就知道——这是。但对于日常开发来说,我们经常需要在本地测试 iframe 嵌套外部页面(比如嵌第三方登录页、支付页、可视化报表系统等)。而线上站点配置了或DENY时,就会直接导致 iframe 加载失败。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1542

python urllib2模块安装,Python urllib和urllib2模块学习(二)

一、urllib其它函数前面介绍了 urllib 模块,以及它常用的 urlopen() 和 urlretrieve()函数的使用介绍。当然 urllib 还有一些其它很有用的辅助方法,比如对 url 进行编码、解码等等。辅助方法:1. urllib.quote(string[,safe]) : 对字符串进行编码,参数safe指定了不需要编码的字符;urllib.unquote(string): ...

weixin_42522320的博客 1695

【Flink】Flink 消费一段时间1万多条数据就卡死

我们有个现场环境,发现了奇怪的现象,就是每次启动任务后,消费1万多条数据后就会卡死,然后整个流不消费,也不往下输出,看起来卡死了一样。缺图这里面出现的网闸原因导致的,但是经过我们写了一个简单的kafka消费程序,然后在出问题的节点上消费数据,实际排查,发现不是这个问题。这个问题,发现也不是,这段时间没有进行过kafka数据清理。里面的问题。因为这个问题,我们后面的代码刻意规范了,不这样操作。后来是在没办法了,然后我们dump了线程,发现有如下代码。

九师兄 351

Python urllib和urllib2模块学习(二)

一、urllib其它函数 前面介绍了 urllib 模块,以及它常用的 urlopen() 和 urlretrieve()函数的使用介绍。当然 urllib 还有一些其它很有用的辅助方法,比如对 url 进行编码、解码等等。 辅助方法: 1. urllib.quote(string[,safe]) : 对字符串进行编码,参数safe指定了不需要编码的字符; urllib.unquo...

weixin_33889245的博客 82

Halcon 形态学 开发案例 (开运算opening(先腐蚀再膨胀)、闭运算closing(先膨胀再腐蚀))

算子方法:功能:使用用户自定义的结构元素对区域进行开运算参数: Region(输入参数) :输入区域 StructElement(输入参数) :结构元素(区域) RegionOpening(输出参数) :开运算后的区域功能:使用圆形结构元素对区域进行开运算参数: Region(输入参数) :输入区域 RegionOpening(输出参数) :开运算后的区域 Radius(输入参数) :圆形结构元素的半径功能:使用矩形结构元素对区域进行开运算。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1618

【运动规划算法项目实战】如何使用Pure Pursuit算法进行路径跟踪(附ROS C++代码)

在自动驾驶和机器人导航领域,路径跟踪是一项关键技术,它使车辆或机器人能够按照预定的路径规划进行移动。路径跟踪算法的选择对于系统性能和安全性至关重要。本文将介绍一种常用且有效的路径跟踪算法——Pure Pursuit算法。我们将详细讨论Pure Pursuit算法的原理、实现步骤以及如何在自动驾驶和机器人系统中应用该算法进行路径跟踪。Pure Pursuit是一种用于路径跟踪的控制算法。它通过计算角速度控制机器人从当前位置移到机器人前方的某个预瞄点。假定线速度是恒定的,当然可以随意更改机器人的线速度。

xiewf的博客 1万+

python爬虫学习二: urllib2模块的学习

python爬虫学习二: urllib2模块的学习1、urllib2介绍 urllib2是使用各种协议完成打开url的一个扩展包。做简单的使用方法是调用uropen方法。importurllib2 content_stream=urllib2.urlopen('http://www.baidu.com/') content=content_s...

weixin_33795093的博客 140

【Unity引擎技术整合】 Unity学习路线 | 知识汇总 | 持续更新 | 保持乐趣 | 共同成长

本文对Unity引擎的知识进行了一个整理总结,基本包含了Unity中大部分的知识介绍。 网上也有很多Unity相关的学习资料,但大多数都不成体系,学起来的时候难免会东奔西走的摸不着头脑。 本文整理的多数文章都是有对应的系列性文章专栏,可以更方便的进行系统学习相关知识体系。

努力前行,总会成为自己心中的那道光 15万+

python爬虫urllib模块详解

关于urllib模块的详细解释,包括且不限于访问、异常处理解析、URL拆分拼接等方法。值得参考的学习笔记。

侯小啾技术博客 5720

机器学习与深度学习基础概念

本篇主要介绍机器学习主要概念,包括不限于标签、特征、样本、训练、模型、回归模型、分类模型、泛化、过拟合、预测、平稳性、训练集、验证集、测试集。

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python2 urllib模块_python urllib2模块

与urllib的区别Python的urllib和urllib2模块都做与请求URL相关的操作;3.x的版本urllib与urllib2已经合并为一个urllib库;2.7的版本urllib与urllib2各有各的作用,urllib与urllib2并不是可以代替的,2是1的补充;以下适用于版本2.7。概述urllib2模块定义的函数和类可用来获取URL(主要是HTTP的),它提供一些复杂的接口用于处...

weixin_36243860的博客 1604

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Python爬虫之urllib模块详解

python的urllib爬虫模块详解,爬虫入门。

m0_61503020的博客 2108

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python2 urllib模块_python urllib与urllib2模块用法教程

python urllib与urllib2模块用法urllib 和urllib2都是接受URL请求的相关模块,但是提供了不同的功能。urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。1、urllib模块 代码示例:import urllib#打开ahlinuxcto = urllib.urlopen('#')#打开本地文件:cto = urllib.urlop...

weixin_35262577的博客 1147

【Python urllib详解】

从Python 3.x开始,urllib被重新组织,合并了urllib和urllib2的功能,分为几个子模块(urllib.request, urllib.parse, 等等)。虽然urllib非常强大,但它的接口相对底层,对于复杂的网络请求处理或者需要高级功能(如连接重用、会话管理、代理支持等),可能不够方便或高效。Python的urllib库由几个子模块组成,每个模块都承担着特定的功能,这些功能共同支持处理URL和网络通信的需求。在某些情况下,需要根据需要修改URL的某些部分,如路径或查询参数等。

武帝为此的博客 1524

python——urllib模块

1. 简述 这里说的urllib模块,是urllib*模块,包括了urllib、urllib2和urllib3等几个。urllib和urllib2都是属于python的基础库,类似于java中官方jdk提供的库,在http://docs.python.org/2/library/internet.html可以看到相关介绍,他们都属于Internet协议和相关支撑的模块部分;除了这两个,其实还有第

2万+

python中urllib模块安装_python urllib模块使用详解

简介:urllib2是python的一个获取url(Uniform Resource Locators,统一资源定址器)的模块。它用urlopen函数的形式提供了一个非常简洁的接口。这使得用各种各样的协议获取url成为可能。它同时 也提供了一个稍微复杂的接口来处理常见的状况-如基本的认证,cookies,代理,等等。这些都是由叫做opener和handler的对象来处理的。以下是获取url最简单的...

weixin_39923110的博客 1075

urllib、urllib2、urllib3 和 requests 模块有什么区别?

在 Python 中,urllib、urllib2、urllib3 和 requests 模块有什么区别?为什么有三个?他们似乎在做同样的事情......

HuntsBot的博客 2263

Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests

python2中,urllib和urllib2 都是接受URL请求的相关模块,但是提供了不同的功能。两个最显著的不同如下: urllib2.urlopen accepts an instance of the Request class or a url, whereas urllib.urlopen only accepts a url  1、urllib2可以接受一个Reque

say_haha的博客 7965

urllib,urllib2,urllib3区别

参考链接: https://zhuanlan.zhihu.com/p/53689373 https://blog.youkuaiyun.com/IMW_MG/article/details/78555375 https://zhuanlan.zhihu.com/p/30801463 python3中也有urllib和urllib3两个库,其中urllib几乎是python2.7中urllib和u...

优雅的黑博客 3976

python中urllib.request_Python中的urllib.request模块

因为在玩Python challenge的时候,有用过这个模块,而且学习这个模块之后也对系统学习网络爬虫有用。当时查了各种资料学习,没有碰官网文档(因为还是对英语有抗拒性),但是还是官方的文档最具权威和学习价值,因此想要此次翻译官方文档的同时,锻炼自己的英语能力,也对urllib模块加深理解。因为是为了自己复习起来方便~所以就不一句英语一句中文的对照着翻了,有兴趣看原版的,自己点官方文档吧~翻译不...

weixin_29214335的博客 3922
上一篇: python模块urllib2详解一
下一篇: python2和python3同时安装如何使用pip
silicon2016
博客等级 码龄11年 7粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值