Python的urllib库简介,取材自崔庆才崔老师的《Python3网络爬虫开发实战》 |
Python爬虫基本库urllib
request
urlopen( )
data参数
使用bytes( )和parse模块的urlencode( )
请求方式:GET→POST
timeout参数
抛出URLError异常,类型为socket.timeout
其他参数
context、cafile、capath
Request
Request(url, data=None, headers={ }, origin_req_host=None, unverifiable=False, method=None)
Handler
验证:HTTPPasswordMrgWithDefaultRealm,HTTPBasicAuthHandler
代理:ProxyHandler
Cookies:HTTPCookieProcessor
FileCookieJar
MozillaCookieJar
LWPCookieJar
Opener
build_opener(Handler)
parse
①urlparse(urlstring, scheme, allow_fragments)
解析出scheme、netloc、path、params、query和fragment
②urlunparse( )
将长度为6的序列(包含URL6个要素)合并成URL
③urlsplit( )
与urlparse( )相似,仅不单独解析params部分
④urlunsplit( )
与urlunparse( )相似,忽略params参数,将长度为5的序列合并成URL
⑤urljoin(base, url, allow_fragments)
用base_url的scheme、netloc和path来修补url
⑥urlencode( )
将dict转化为符合URL的str数据
⑦parse_qs( )
与urlencode( )相反,将符合URL的str数据转化为dict,其中dict的值为含str的list
⑧parse_qsl( )
与parse_qs( )相似,将符合URL的str数据转化为含tuple的list
⑨quote( )
对中文字符进行编码,使得其可以呈现在URL中;默认为UTF-8
⑩unquote( )
对URL进行解码,还原隐含的非ASCII字符
error
URLError(基类)
reason:错误原因
HTTPError
code:HTTP状态码
reason:错误原因
headers:请求头
robotparser
Robots协议(Robots Exclusion Protocol):通常是robots.txt文件,置于根目录下
样例:User-agent: * Disallow: / Allow: /public/
该库仅含RobotFileParser类
set_url( ):补充构造RobotFileParser对象时未传入的URL
read( ):执行读取和分析操作
parse( ):直接分析robots.txt文件,常与urlopen( )连用
mtime( ):返回上次爬取和分析robots.txt的时间
modified( ):将当前时间设置为上次爬取和分析robots.txt的时间