学习爬虫,最初的操做即是模拟浏览器向服务器发出请求,那么咱们须要从哪一个地方作起呢?请求须要咱们本身来构造吗?须要关心请求这个数据结构的实现吗?须要了解HTTP、TCP、IP层的网络传输通讯吗?须要知道服务器的响应和应答原理吗?html
可能你不知道无从下手,不过不用担忧,Python的强大之处就是提供了功能齐全的类库来帮助咱们完成这些请求。最基础的HTTP库有urllib、httplib二、requests、treq等。python
拿urllib这个库来讲,有了它,咱们只须要关心请求的连接是什么,须要传的参数是什么以及可选的请求头设置就行了,不用深刻到底层去了解它究竟是怎样传输和通讯的。有了它,两行代码就能够完成一个请求和响应的处理过程,获得网页内容,是否是感受方便极了?浏览器
接下来,就让咱们从最基础的部分开始了解这些库的使用方法吧。服务器
在Python 2中,有urllib和urllib2两个库来实现请求的发送。而在Python 3中,已经不存在urllib2这个库了,统一为urllib,其官方文档连接为:docs.python.org/3/library/u…。微信
首先,了解一下urllib库,它是Python内置的HTTP请求库,也就是说不须要额外安装便可使用。它包含以下4个模块。网络
request
:它是最基本的HTTP请求模块,能够用来模拟发送请求。就像在浏览器里输入网址而后回车同样,只须要给库方法传入URL以及额外的参数,就能够模拟实现这个过程了。error
:异常处理模块,若是出现请求错误,咱们能够捕获这些异常,而后进行重试或其余操做以保证程序不会意外终止。parse
:一个工具模块,提供了许多URL处理方法,好比拆分、解析、合并等。robotparser
:主要是用来识别网站的robots.txt文件,而后判断哪些网站能够爬,哪些网站不能够爬,它其实用得比较少。这里重点讲解一下前3个模块。数据结构
本资源首发于崔庆才的我的博客静觅: Python3网络爬虫开发实战教程 | 静觅工具
如想了解更多爬虫资讯,请关注个人我的微信公众号:进击的Coder学习
weixin.qq.com/r/5zsjOyvEZ… (二维码自动识别)网站