python urllib和urllib3包使用

urllib包

urllib是一个包含几个模块来处理请求的库。分别是:

urllib.request 发送http请求

urllib.error 处理请求过程中,出现的异常。

urllib.parse 解析url

urllib.robotparser 解析robots.txt 文件

urllib.request

urllib当中使用最多的模块,涉及请求,响应,浏览器模拟,代理,cookie等功能。

1. 快速请求

urlopen返回对象提供一些基本方法:

read 返回文本数据

info 服务器返回的头信息

getcode 状态码

geturl 请求的url

 

2.模拟PC浏览器和手机浏览器

需要添加headers头信息,urlopen不支持,需要使用Request

PC

 

手机

 

3.Cookie的使用

客户端用于记录用户身份,维持登录信息

 

4.设置代理

当需要抓取的网站设置了访问限制,这时就需要用到代理来抓取数据。

 


urllib.error

urllib.error可以接收有urllib.request产生的异常。urllib.error中常用的有两个方法,URLError和HTTPError。URLError是OSError的一个子类,

HTTPError是URLError的一个子类,服务器上HTTP的响应会返回一个状态码,根据这个HTTP状态码,我们可以知道我们的访问是否成功。

URLError

URLError产生原因一般是:网络无法连接、服务器不存在等。

例如访问一个不存在的url

 

HTTPError

HTTPError是URLError的子类,在你利用URLopen方法发出一个请求时,服务器上都会对应一个应答对象response,其中他包含一个数字“状态码”,

例如response是一个重定向,需定位到别的地址获取文档,urllib将对此进行处理。其他不能处理的,URLopen会产生一个HTTPError,对应相应的状态码,

HTTP状态码表示HTTP协议所返回的响应的状态。

 


urllib.parse

urllib.parse.urljoin 拼接url

基于一个base URL和另一个URL构造一个绝对URL,url必须为一致站点,否则后面参数会覆盖前面的host

 

urllib.parse.urlencode 字典转字符串

 

urllib.parse.quote url编码

urllib.parse.unquote url解码

Url的编码格式采用的是ASCII码,而不是Unicode,比如

http://so.biquge.la/cse/search?s=7138806708853866527&q=%CD%EA%C3%C0%CA%C0%BD%E7

 


urllib3包

Urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库,许多Python的原生系统已经开始使用urllib3。Urllib3提供了很多python标准库里所没有的重要特性:

1.线程安全

2.连接池

3.客户端SSL/TLS验证

4.文件分部编码上传

5.协助处理重复请求和HTTP重定位

6.支持压缩编码

7.支持HTTP和SOCKS代理

安装:

Urllib3 能通过pip来安装:

$pip install urllib3

你也可以在github上下载最新的源码,解压之后进行安装:

$git clone git://github.com/shazow/urllib3.git

$python setup.py install

urllib3的使用:

request GET请求

 

request GET请求(添加数据)

 

post请求

 

 

发送json数据

 

上传文件

 

使用Timeout

 

对重试和重定向进行控制

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值