Skip to content

Latest commit

 

History

History
169 lines (86 loc) · 5.56 KB

README.md

File metadata and controls

169 lines (86 loc) · 5.56 KB

GushiwenSpider

本项目用于爬取古诗文网,以scrapy开源框架为基础提取历朝历代诗词作品、作者介绍等内容,结合scrapy_redis部署分布式爬虫,通过MySQL存储提取数据,最终可根据需要保存在本地TXT文件中。

爬取完毕后对数据进行了统计分析,详见古诗文网词频简要分析

爬取古诗文网主要内容:

 作品:名称、朝代、作者、原文、评分
 
 参考翻译:译文及注释
 
 参考赏析:创作背景、鉴赏、赏析、
 
 作者介绍:作者名、生卒年、字、参考资料

Spiders

  一共四只爬虫,采用分布式部署:

  爬虫执行顺序:
      gushiwen --> view_spider --> author_spider --> fanyi_spider

gushiwen

 本程序为主程序,负责提取作品的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,再保存到本地。 

author_spider

 处理作者介绍部分
 作者简介与作品正文处理方式相同
 作者生平事迹等与作品翻译处理方式相同

fanyi_spider

从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=唐代

执行save脚本保存提取内容到本地,目录结构如下:

先秦/

佚名/

     作品1
     作品2
	
	.....
	
左丘明/

      左丘明简介.txt
      曹刿论战.txt
      子鱼论战.txt
      .....
	  
屈原/
  
      屈原简介.txt
      离骚.txt
      九歌.txt
      .....

两汉/

    .../
   

    .../

保存结果示例

十二个朝代

image

唐代-诗仙李白

image

唐代-诗圣杜甫

image

唐代-诗魔白居易

image

宋代-词中女神李清照

image

宋代-苏轼

image

宋代-陆游

image

金朝-元好问

image

清代-曹雪芹

image

清代-纳兰性德

image

数据库查询结果示例

唐代作品评分排名前三十且评分人数超过一千人:

image

宋代作品评分排名前三十且评分人数超过一千人:

image

唐代和宋代作品评分排名前三十且评分人数超过一千人:

image