python下载urllib3_Python网络请求urllib和urllib3详解

本文详细介绍了Python的urllib库,包括request模块的GET、POST请求,设置Headers、Proxy、Cookie的操作。同时,讲解了urllib3库,强调其线程安全、连接池等特性,并展示了如何设置headers、代理和请求参数。
摘要由CSDN通过智能技术生成

1. 简介

urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在Python3中整合成了urllib。

而urllib3则是增加了连接池等功能,两者互相都有补充的部分。

2. urllib

urllib作为Python的标准库,基本上涵盖了基础的网络请求功能。

2.1. urllib.request

urllib中,request这个模块主要负责构造和发起网络请求,并在其中加入Headers、Proxy等。

2.1.1. 发起GET请求

主要使用urlopen()方法来发起请求:

from urllib import request

resp = request.urlopen('http://www.baidu.com')

print(resp.read().decode())

在urlopen()方法中传入字符串格式的url地址,则此方法会访问目标网址,然后返回访问的结果。

访问的结果会是一个http.client.HTTPResponse对象,使用此对象的read()方法,则可以获取访问网页获得的数据。但是要注意的是,获得的数据会是bytes的二进制格式,所以需要decode()一下,转换成字符串格式。

2.1.2. 发起POST请求

urlopen()默认的访问方式是GET,当在urlopen()方法中传入data参数时,则会发起POST请求。注意:传递的data数据需要为bytes格式。

设置timeout参数还可以设置超时时间,如果请求时间超出,那么就会抛出异常。

from urllib import request

resp = request.urlopen('http://httpbin.org/post', data=b'word=hello', timeout=10)

print(resp.read().decode())

2.1.3. 添加Headers

通过urllib发起的请求会有默认的一个Headers:"User-Agent":"Python-urllib/3.6",指明请求是由urllib发送的。

所以遇到一些验证User-Agent的网站时,我们需要自定义Headers,而这需要借助于urllib.request中的Request对象。

from urllib import request

url = 'http://httpbin.org/get'

headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, lik

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值