爬虫分类
- 通用爬虫
- 聚焦爬虫
- 增量式爬虫
通用爬虫 和 聚焦爬虫 之前的博客有讲解过了,本篇主要讲解增量式爬虫
增量式爬虫
概念:检测网站数据更新的情况,只会爬取最新更新的数据
适用于持续跟踪网站的数据爬取。
例如三个月前,爬取了所有数据。网站更新了100条数据,此时爬取跟新的100条数据即可。
流程:
- 指定起始url,基于CrawlSpider获取页码url
- 基于Rule请求获取的页码url
- 基于页码url解析出当前页对应的详情url
- (核心)检测详情url之前有没有访问过
将爬取详情页的url进行存储
存储在redis的set数据结构中(存在返回0,不存在返回0) - 对详情页发送请求,解析数据
- 持久化存储
案例
增量爬取电影名称和简介
http://www.4567kan.com/frim/index1.html
scrapy startproject tvPro
cd tvPro
scrapy genspider -t crawl tv www.xxx.com
settings.py
BOT_NAME = 'tvPro'
SPIDER_MODULES = ['tvPro.spiders']
NEWSPIDER_MODULE = 'tvPro.spiders'
# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
# Obey robots.txt rules
ROBOTSTXT_OBEY = False
LOG_LEVEL = 'ERROR'
ITEM_PIPELINES = {
'tvPro.pipelines.TvproPipeline': 300,
}
item.py
import scrapy
class TvproItem(scrapy.Item