注册
登录
提问时间:2018/8/16 15:55:13    楼主:未知网友   阅读量:322

urllib是python3 网络爬虫的核心模块,主要有以下功能:网页请求、响应获取、代理IP设置、cookie设置、异常处理、URL解析等。爬虫所需要的功能,基本上在urllib中都能找到。

urllib中主要有这4个模块:request,error,parse,robotparser。而最重要的就是request模块。

request:基本的HTTP请求模块,用来模拟发送请求;

error:异常处理模块,如果出现请求错误,用来捕获异常,然后重试或者进行其他操作;

parse:一个工具模块,提供了许多URL处理方法;

robotparser:识别网站里的robot.txt文件,判断哪些网站可以爬,很少用到。

一、发送请求

urlopen模块提供了基本的构造HTTP请求方法,利用它可以模拟浏览器的一个请求发起的过程,同时它还有处理授权验证、重定向、浏览器Cookies以及其他内容。

# import urllib.request

#

# response = urllib.request.urlopen("http://ip.zdaye.com")

# print(response.read().decode("utf-8"))

二、Hander工具

可以理解为各种处理器,处理登录验证,处理Cookies,处理代理设置,利用它几乎可以做到HTTP请求中的所有事情。

HTTPDefaultErrorHandler:处理服务器响应错误;

HTTPRedirectHandler:用于重定向;

HTTPCookieProcessor:用于处理Cookies;

ProxyHandler:用于设置代理IP,默认代理IP是空;

HTTPPasswordMgr:用于管理密码,它维护了用户名和密码的表;

HTTPBasicAuthHandler:用于管理认证,如果一个连接打开时需要认证,可以用它来解决认证问题;

三、异常处理

# URLError类,通过他能捕捉错误原因进行处理;

# try :

# except URLError as e:

#     print(e.reason)

#HTTPError类,专门处理HTTP请求错误

四、解析链接

urllib库里提供了parse模块,它定义了处理URL的标准接口。主要有一下几种方法:urlparse(),urlunparse(),urlsplit(),urlunspilt(),urljoin(),urlencode(),parse_qs(),parse_qsl(),quote(),unquote(),具体使用方法由于篇幅原因,就不一一介绍了。