介绍
python3 中的urllib 是一个包(package),有以下4个模块
- urllib.request:用于打开和读取URLs
- urllib.error:处理urllib.request抛出的异常错误信息
- **urllib.parse: **解析URLs
- urllib.robotparser:解析robots.txt 文件,不常用
urllib.request
以下简单介绍常用功能及用法。
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
urlopen() 打开一个url地址,返回一个HTTPResponse 对象
主要参数说明:
url:请求的url地址或者Request对象。Request对象可以从class urllib.request.Request 获取
data: 发送到服务器的数据,可以为空
timeout:阻塞超时等待时间,单位秒
cafile和capath:指定CA证书和路径,主要用于HTTPS的请求
cadefault:可以忽略
HTTPResponse 对象有以下方法
- geturl():获取请求地址
- info():获取服务端返回的Meta信息,主要有headers信息,如以下内容
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Fri, 07 Apr 2017 11:33:39 GMT
Access-Control-Allow-Origin: *
Expires: Fri, 07 Apr 2017 12:02:03 GMT
Cache-Control: max-age=600
X-GitHub-Request-Id: A3C2:0231:3603991:47BCC18:58E77D63
Content-Length: 1566
Accept-Ranges: bytes
Date: Sat, 08 Apr 2017 05:49:03 GMT
Via: 1.1 varnish
Age: 58
Connection: close
X-Served-By: cache-nrt6128-NRT
X-Cache: HIT
X-Cache-Hits: 1
X-Timer: S1491630543.117421,VS0,VE0
Vary: Accept-Encoding
X-Fastly-Request-ID: 846820755a6faeb6754042ec399c2c46a5841410
- getcode():获取请求状态码,如请求成功,状态码是 200
urllib.request.Request 类
class urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
主要参数说明:
url:可用的地址
data:发送到服务器的数据
headers:必须是一个字典,定义一些浏览器信息如:User-Agent
method:发送请求的方法,如‘GET、POST’,data如果是空,则默认是GET方式请求;如果data不为空,则默认是POST方式请求
urllib.parse 模块
urllib.parse.urlparse(urlstring, scheme='', allow_fragments=True)
将一个url解析为6部分,该函数返回一个元组
>>> from urllib.parse import urlparse
>>> o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
>>> o
ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
params='', query='', fragment='')
>>> o.scheme
'http'
>>> o.port
80
>>> o.geturl()
'http://www.cwi.nl:80/%7Eguido/Python.html'
网友评论