python爬虫-scrapy基于CrawlSpider类的全站数据爬取

本文介绍了Python Scrapy框架中CrawlSpider类的使用,包括链接提取器和规则解析器的概念,以及如何创建爬虫文件、item文件、管道文件和配置文件来实现古诗文网全站数据的爬取和存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、CrawlSpider类介绍

1.1 引入

使用scrapy框架进行全站数据爬取可以基于Spider类,也可以使用接下来用到的CrawlSpider类。基于Spider类的全站数据爬取之前举过栗子,感兴趣的可以康康

1.2 介绍和使用

1.2.1 介绍

CrawlSpider是Spider的一个子类,因此CrawlSpider除了继承Spider的特性和功能外,还有自己特有的功能,主要用到的是 LinkExtractor()rules = (Rule(LinkExtractor(allow=r'Items/'), callback='parse_item', follow=True),)

  • LinkExtractor()链接提取器
    LinkExtractor()接受response对象,并根据allow对应的正则表达式提取响应对象中的链接
link = LinkExtractor(
# Items只能是一个正则表达式,会提取当前页面中满足该"正则表达式"的url	
   allow=r'Items/'
)
  • rules = (Rule(link, callback='parse_item', follow=True),)规则解析器
    按照指定规则从链接提取器中提取到的链接中解析网页数据
    link:是一个LinkExtractor()对象,指定链接提取器
    callback:回调函数,指定规则解析器(解析方法)解析数据
    follow:是否将链接提取器继续作用到链接提取器提取出的链接网页
import scrapy
# 导入相关的包
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule

class TextSpider(CrawlSpider):
    name = 'text'
    allowed_domains = ['www.xxx.com']
    start_urls = ['http://www.xxx.com/']

# 链接提取器,从接受到的response对象中,根据item正则表达式提取页面中的链接
	link = LinkExtractor(allow=r'Items/')
	link2 = LinkExtractor(allow=r'Items/')
# 规则解析器,根据callback将链接提取器提取到的链接进行数据解析
# follow为true,则表示将链接提取器继续作用到链接提取器所提取到的链接页面中
# 故:在我们提取多页数据时,若第一页对应的网页中包含了第2,3,4,5页的链接,
# 当跳转到第5页时,第5页又包含了第6,7,8,9页的链接,
# 令follow=True,就可以持续作用,从而提取到所有页面的链接
    rules = (Rule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值