Spider、CrawlSpider、RedisSpider代码区别

本文介绍了三种Scrapy爬虫的实现方式:Spider类用于单一页面抓取,CrawlSpider类适用于多页面爬取并遵循一定规则,RedisSpider类则利用Redis进行任务调度,适合分布式爬虫场景。

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

Spider: 

class BookSpider(scrapy.Spider):
    name = 'book'
    allowed_domains = ['suning.com']
    start_urls = ['https://book.suning.com/']

    def parse(self, response):
        pass

 CrawlSpider:

# -*- coding: utf-8 -*-
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule


class KaoyanSpider(CrawlSpider):
    name = 'kaoyan'
    allowed_domains = ['kaoyan365.cn']
    start_urls = ['http://www.kaoyan365.cn/kaoyantiaoji/tiaojixinxi/158281.html']

    rules = (
        # 提取列表页的url地址
        Rule(LinkExtractor(allow=r'position\.php\?&start=\d*?#a'), callback='parse_list', follow=True),
        # 提取详情页的url地址
        # Rule(LinkExtractor(allow=r'position_detail\.php\?id=\d*?&keywords=&tid=0&lid=0'), callback='parse_item')
    )

    def parse_list(self, response):
        pass

 RedisSpider:

class BookSpider(RedisSpider):  # 继承自父类为RedisSpider
    name = 'dang'
    allowed_domains = ['dangdang.com']  # 手动指定allow_domains
    # start_urls = ['http://dangdang.com/']  # 没有start_urls
    redis_key = "dangdang"  # 增加了一个redis_key的键

    def parse(self, response):
        pass

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值