本项目用于爬取古诗文网,以scrapy开源框架为基础提取历朝历代诗词作品、作者介绍等内容,结合scrapy_redis部署分布式爬虫,通过MySQL存储提取数据,最终可根据需要保存在本地TXT文件中。
爬取完毕后对数据进行了统计分析,详见古诗文网词频简要分析
爬取古诗文网主要内容:
作品:名称、朝代、作者、原文、评分
参考翻译:译文及注释
参考赏析:创作背景、鉴赏、赏析、
作者介绍:作者名、生卒年、字、参考资料
一共四只爬虫,采用分布式部署:
爬虫执行顺序:
gushiwen --> view_spider --> author_spider --> fanyi_spider
本程序为主程序,负责提取作品的URL (http://so.gushiwen.org/view_xxxx.apsx) , 写入redis队列view:start_urls中,交给view_spider爬取处理。
从作品URL中提取:
view编号(view_xxxx),lpush到本地redis的view_num,在保存作品内容(执行save脚本)到本地的时候,从中读取view编号,再查询数据库提取相关内容。
author链接(http://so.gushiwen.org/author_xxxx.apsx),lpush到本地redis的author:start_urls,供author_spider爬取处理。
author编号(author_xxx),同上,lpush到本地redis的author_num,在保存作品内容(执行save脚本)到本地的时候,从中读取author编号,再查询数据库提取相关内容。
fanyi链接(fanyi_xxx),lpush到本地redis的fanyi:start_urls。在保存作品内容(执行save脚本)到本地的时候,首先从表bview中读取fanyi_list,该fanyi_list为fanyi_num以逗号(',')相隔,再依据fanyi_numc从表fanyi中读取content,再保存到本地。
处理作者介绍部分
作者简介与作品正文处理方式相同
作者生平事迹等与作品翻译处理方式相同
从redis队列 fanyi:start_urls
获取链接:
http://so.gushiwen.org/shangxi_4323.aspx
http://so.gushiwen.org/fanyi_3024.aspx
提取翻译正文部分,存入数据库
fanyi_3024 content
shangxi_4323 content
URL规则:
so.gushiwen.org/tpye.aspx?p=1&t=写景&c=唐代
页码: p=1
类别:t=写景
朝代: c=唐代
先秦/
佚名/
作品1
作品2
.....
左丘明/
左丘明简介.txt
曹刿论战.txt
子鱼论战.txt
.....
屈原/
屈原简介.txt
离骚.txt
九歌.txt
.....
两汉/
.../
.../
十二个朝代
唐代-诗仙李白
唐代-诗圣杜甫
唐代-诗魔白居易
宋代-词中女神李清照
宋代-苏轼
宋代-陆游
金朝-元好问
清代-曹雪芹
清代-纳兰性德
唐代作品评分排名前三十且评分人数超过一千人:
宋代作品评分排名前三十且评分人数超过一千人:
唐代和宋代作品评分排名前三十且评分人数超过一千人: