1.基本的爬虫架构
主要包括调度器,URL管理器,网页下载器,网页解析器这些部分,实现价值数据的获取。
1.1 URL管理器
对待抓取的URL集合和已抓取的URL集合进行管理,避免重复抓取和循环抓取。
主要有5个部分的功能,判断待添加URL是否在容器中、添加新的URL到待爬取集合、判断是否还有待爬取集合、获取待爬取URL、将URL从待爬取的集合移动到已爬取集合中。
分类:Python内存(待爬取和已爬取两个set()集合),关系数据库(eg:MySQL,建表来实现存储),缓存数据库(eg:redis,支持set数据结构)。大型公司一般采用高效的缓存数据库作为URL管理器,小型的或想要永久保存的采用关系数据库作为URL管理器,小型的不需要保存的可以直接存储在Python内存中。
1.2 网页下载器(爬虫的核心组件)
将互联网上URL对应的网页下载到本地。
主要功能有:将待获取URL对应的互联网网页以HTML的形式下载到本地,并以本地文件或内存字符串的形式进行存储,以便后续的处理。
分类:urllib2(Python官方基础模块),requests(Python的第三方插件)等。
1.2.1 urllib2下载网页的方法
a.使用urlopen函数直接获取网页信息
具体代码: