基础爬虫框架主要包括五大模块,分别为爬虫调度器、URL管理器、HTML下载器
HTML解析器、数据存储器。功能分析如下:
1.爬虫调度器主要负责统筹其他四个模块的协调工作。
2.URL管理器负责管理URL链接,维护已经爬取的URL集合和未爬取的URL集合,
提供获取新URL链接的接口。
3.HTML下载器用于从URL管理器中获取未爬取的URL链接并下载HTML网页。
4.HTML解析器用于从HML下载器中取已经下载的HTML网页,并从中解析出新
的URL链接交给URL管理器,解析出有效数据交给数据存储器。
数据存储器(DataOutput)用于将HTML解析器解析出来的数据通过文件或者数据库的形式存储起来
数据存储器主要包括两个方法:storedata(data)用于将解析出来的数据存储到内存中,
outputhtml用于将存储的数据输出为指定的文件格式,我们使用的是将数据输出为HTML
HTML解析器主要提供一个parser对外接口,输入参数为当前页面的URL和HTML下
载器返回的网页内容。解析器Htmlparser.py程序的代码如下
HTML下载器(htmldownload)用来下载网页,这时候需要注意网页的编码,以保证下载的网页没有乱码
下载器需要用到Requests模块,里面只需要实现一个接口即可:download(urD)。程序代码如下:
URL管理器需要提供以下接口,用于配合其他模块使用
1.判断是否有待取的URL,方法定义为hasnewurlo
2.添加新的URL到未爬取集合中,方法定义为addnewurl(url),addnewurls(urls)
3.获取一个未爬取的URL,方法定义为getnewurlo
4.获取未爬取URL集合的大小,方法定义为newurlsized
5.获取已经爬取的URL集合的大小,方法定义为oldurlsize
程序Urlmanager.py的完整代码如下:
爬虫调度器首先要做的是初始化各个模块,然后通过crawl(rooturl)方法传入入口URL,方法内部实现按照运行流程控制各个模
块的工作。爬虫调度器Spiderman.py的程序如下
任何一个完整的爬虫都离不开这五个模块,希望对有需要的人有帮助。