本次我们爬虫主要使用到的python框架为beatufulsoup4,对于HTML/XML数据的筛选,BeautifulSoup也是比较常用且使用简单的技术,BeautifulSoup是一种非常优雅的专门用于进行HTML/XML数据解析的一种描述语言,可以很好的分析和筛选HTML/XML这样的标记文档中的指定规则数据
在数据筛选过程中其基础技术是通过封装HTML DOM树实现的一种DOM操作,通过加载网页文档对象的形式,从文档对象树模型中获取目标数据
BeautifulSoup操作简单易于上手,在很多对于数据筛选性能要求并不是特别苛刻的项目中经常使用,目前市场流行的操作版本是BeautifulSoup4,经常称BS4。
首先,我们安装bs4,使用Pypi方法安装
$ apt-get install Python-bs4
一. 爬虫构造
我们的爬虫分为五大部分,爬虫控制器,网页下载器,url管理器,网页解析器、URL下载器和爬虫结果输出器。
二. 存储的数据结构
xsType = {}用于存储类型id和类型名称的对应关系
xsData = []存储小说id,小说名称,小说类型id
xsList = {}用于存储小说id对应的所有集数id
xsArt = {}用于存储每一集的文字
三. 分析每个部分
1. 爬虫控制器
首先将爬虫各个部分导入控制器
建立好相关存储
通过给定的首个地址使用各个部分进行对网页的下载,爬取url,添加url,获取url,爬取网页内容并保存等操作
2. url下载器
首先,引入Python自带的urllib2
使用urllib2的urlopen()方法进行下载网页
response= urllib2.urlopen(url)
并判断是否空网页
if response.getcode() != 200: return None
返回下载的网页
3. url管理器
url管理器的功能主要分为两块,第一块是写入新Url,第二块是获取新url,第三块是是否有新Url,数据上分为未使用的url和已使用的url
首先,爬虫控制器会使用url管理器的hasnewurl方法,判断是否有待爬取的url
如果有,就访问getnewurl获取新的Url并将其写入已爬取url
爬取后使用addnewurl将已爬取的url写入url管理器中
4. 网页解析器
这是一个爬虫中最重要的部分,进行网页解析数据分析
为了避免url混乱,我们第一步爬url只爬导航栏
同时爬取其导航栏中的链接与文字使用正则表达式匹配保存为小说类型id以及类型名称
进入导航栏也后爬取小说名所在的url
同时爬取改链接中的小说名,并通过正则表达式导出小说id
进入小说详情页面后,爬取改小说所有集数的url,id
进入文章页面后,爬取该页url通过正则表达式匹配出文章id,并爬取文章内容
5. 输出器
进行数据的存储更新
把爬取到的数据写在网页中
实验结果: