首页 > 代码库 > urllib包

urllib包

前言:urllib.parse模块按功能分为两大类:URL parsing(url解析) 和URL quoting(url引用)。

一.URL parsing:主要是1.把URL字符串分割成组件2.把组件合并成url字符串

1.1.  urllib.parse.urlparse(urlstring, scheme=‘‘, allow_fragments=True) =>操作urlstring字符串生成6个元素组成的一个元祖的ParseResult实体,例 如:ParseResult(scheme=‘http‘, netloc=‘www.cwi.nl:80‘, path=‘/%7Eguido/Python.html‘, params=‘‘, query=‘‘, fragment=‘‘)。

  上述一个元祖的ParseResult实体有以下只读属性:

  

AttributeIndexValueValue if not present
scheme0URL scheme specifierempty string
netloc1Network location partempty string
path2Hierarchical pathempty string
params3Parameters for last path elementempty string
query4Query componentempty string
fragment5Fragment identifierempty string
username User nameNone
password PasswordNone
hostname Host name (lower case)None
port Port number as integer, if presentNone

 

 

1.2. urllib.parse.urlunparse(parts):主要是把urlparse方法生成的元组重新合并成url字符串。

1.3.urllib.parse.urlsplit(urlstring, scheme=‘‘, allow_fragments=True):功能类似urlparse,但是不拆分参数。

1.4.urllib.parse.urlunsplit(parts):功能类似urlunparse

1.5.urllib.parse.urljoin(base, url, allow_fragments=True):url是相对地址,就拼接,若是绝对地址就替换base。

1.6.urllib.parse.urldefrag(url):获取url中的Fragment identifier

1.7.urllib.parse.quote(string, safe=‘/‘, encoding=None, errors=None):对url编码

1.8.urllib.parse.unquote(string, encoding=‘utf-8‘, errors=‘replace‘):对url解码

1.9.urllib.parse.urlencode(query, doseq=False, safe=‘‘, encoding=None, errors=None):对url参数编码

二、urllib.request打开URL的工具类,包括:身份认证、重定向、cookie。

2.1.urllib.request.urlopen(url, data=http://www.mamicode.com/None, [timeout, ]*, cafile=None, capath=None, cadefault=False):打开一个url网站。

  url:可以是个字符串也可以是Request object.

  data:发送到server的数据.

  返回:For http and https urls, this function returns a http.client.HTTPResponse object。

         For ftp, file, and data urls and requests explicity handled by legacy URLopener and FancyURLopener classes, this function returns a urllib.response.addinfourl object。

2.2.urllib.request.build_opener([handler, ...]):返回一个OpenerDirector实体。

  参数:handlers can be either instances of BaseHandler, or subclasses of BaseHandler

2.3.类:class urllib.request.Request(url, data=http://www.mamicode.com/None, headers={}, origin_req_host=None, unverifiable=False, method=None):URL request类定义。

  url必须是有效的。

  data must be a bytes object。

2.4类:Request Objects:属性和方法见api

2.5类:OpenerDirector Objects:属性和方法见api

  OpenerDirector.open(url, data=http://www.mamicode.com/None[, timeout]):与urllib.request.urlopen()方法效果相同。

2.6委托:BaseHandler Objects:属性和方法见api

 

三、urllib.error

四、urllib.robotparser

 

urllib包