-
22025年5月
-
262025年4月
-
272025年3月
-
282025年2月
-
162025年1月
-
282024年4月
-
302024年3月
-
292024年2月
-
312024年1月
-
312023年12月
-
302023年11月
-
312023年10月
-
302023年9月
-
312023年8月
-
352023年7月
-
312023年6月
-
312023年5月
-
302023年4月
-
312023年3月
-
282023年2月
-
312023年1月
-
312022年12月
-
302022年11月
-
312022年10月
-
302022年9月
-
312022年8月
-
322022年7月
-
292022年6月
-
322022年5月
-
302022年4月
-
332022年3月
-
312022年2月
-
372022年1月
-
382021年12月
-
382021年11月
-
402021年10月
-
432021年9月
-
372021年8月
-
442021年7月
-
442021年6月
-
432021年5月
-
342021年4月
-
312021年3月
-
292021年2月
-
352021年1月
-
422020年12月
-
402020年11月
-
482020年10月
-
522020年9月
-
852020年8月
-
752020年7月
-
802020年6月
-
782020年5月
-
772020年4月
-
432020年3月
-
362020年2月
-
452020年1月
-
562019年12月
-
712019年11月
-
612019年10月
-
562019年9月
-
532019年8月
-
362019年7月
-
362019年6月
-
382019年5月
-
402019年4月
-
352019年3月
-
342019年2月
-
442019年1月
-
392018年12月
-
402018年11月
-
392018年10月
-
392018年9月
-
452018年8月
-
452018年7月
-
392018年6月
-
512018年5月
-
492018年4月
-
342018年3月
-
282018年2月
-
482018年1月
-
732017年12月
-
7292017年11月
-
7442017年10月
-
2892017年9月
-
12017年8月
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.kxdaili.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(),具体使用方法由于篇幅原因,就不一一介绍了。