所在的位置: html >> html资源 >> 一个简单的Scrapy爬虫

一个简单的Scrapy爬虫

基础爬虫框架主要包括五大模块,分别为爬虫调度器、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的程序如下

任何一个完整的爬虫都离不开这五个模块,希望对有需要的人有帮助。




转载请注明:http://www.aierlanlan.com/rzgz/1824.html