Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

使用Scrapy写个增量式图书爬虫

$
0
0
需求分析

爬取图书(特别是小说)数据并存储,用作之后的分析。

可以爬取的站点有Amazon、京东、当当、腾讯旗下的一众小说网站(腾讯文学、创世中文、云起书院)、起点中文网等等。


使用Scrapy写个增量式图书爬虫
使用Scrapy写个增量式图书爬虫
爬虫选择

根据自己熟悉的语言来调查分析网上流行的爬虫。

并最终根据自身情况选择了Scrapy。


使用Scrapy写个增量式图书爬虫
使用Scrapy写个增量式图书爬虫
以云起书院为例来分析相关网站的模式
使用Scrapy写个增量式图书爬虫
根据分析可以看出来,网站的层级有三层:图书列表,图书内容和图书评论。在爬取的时候可以根据三层的内容分别设计Item和数据库并进行爬取和存储。 Scrapy工作方式
使用Scrapy写个增量式图书爬虫

有许多地方Scrapy框架都自动完成了,需要做的就是定义要爬取的URL以及将URL里面的内容使用Selector匹配道,在Pipeline中做数据清洗并且将Item里面的内容存入数据库或者文件。

分层增量爬取架构
使用Scrapy写个增量式图书爬虫
增量爬取的方法就是分别对每一层写一个Spider,分别进行爬取,爬取之后进行存储并加入标识,之后更新的时候只更新新加入的图书而不去重新将所有的图书重新爬取。 利用Shell指令实现自动增量爬取 实现爬虫每天自动运行 //Bash #crontab l 5 0,12 * * * /root/cronList.sh //cronList.sh #!/bin/bash cd /root/spider/yunqi bash /root/spider/yunqi/run.sh 每次开启任务,按照广度优先进行分层爬取 //run.sh DATE=$(date +%Y-%m-%d.%H:%M:%S) echoyunqiSpiderStrat $DATE >> log.out scrapycrawlnovelList echoyunqinovelListcomplete >>log.out scrapycrawlnovelContent echoyunqinovelContentcomplete >>log.out scrapycrawlnovelComment echoyunqinovelCommentcomplete >>log.out DATE=$(date +%Y-%m-%d.%H:%M:%S) echoyunqiSpiderFinish $DATE >> log.out 运行效果
使用Scrapy写个增量式图书爬虫
后期工作

在爬取之后还应该使用Supervisor或者Scrapyd进行托管,以更稳定的方式运行。之后有空会继续更新一套可视化爬虫工具并开源。

参考 Scrpay文档: http://doc.scrapy.org/en/1.1/index.html Scrapyd文档: https://scrapyd.readthedocs.io/en/latest/index.html Scrpay使用笔记: http://www.q2zy.com/articles/2015/12/15/note-of-scrapy/ Scrapy使用以及Xpath的一些坑: http://www.tuicool.com/articles/EVfqI3 amazon图书爬虫(非增量式,已开源): https://github.com/imaginezz/amazonBookSpider

Viewing all articles
Browse latest Browse all 9596

Latest Images

Trending Articles