CrawlSpider 是 Scrapy 框架中的一个 Spider 类,用于实现通用的爬虫逻辑。它提供了一些默认的参数和方法,可以方便地设置爬取深度。

要设置爬取深度,可以通过修改 CrawlSpider 的 rules 属性来实现。rules 属性是一个列表,每个元素都是一个 Rule 对象,用于定义爬取规则。

每个 Rule 对象都有一个 LinkExtractor 属性,用于指定爬取链接的规则。LinkExtractor 有一个参数 depth,用于设置爬取深度。默认情况下,depth 为 1,即只爬取当前页面上的链接。如果要设置更深的爬取深度,可以将 depth 参数设置为大于 1 的值。

以下是一个示例代码,演示如何使用 CrawlSpider 设置爬取深度为 3:

from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor

class MySpider(CrawlSpider):
    name = 'my_spider'
    allowed_domains = ['example.com']
    start_urls = ['http://www.example.com']

    rules = (
        Rule(LinkExtractor(allow=r'example.com'), callback='parse_item', follow=True, process_links='process_links'),
    )

    def parse_item(self, response):
        # 解析网页内容的逻辑
        pass

    def process_links(self, links):
        # 处理链接的逻辑
        return links

在上面的示例代码中,设置了爬取深度为 3 的规则,并且在回调函数 parse_item 中解析了网页内容。可以根据实际需求,自定义回调函数和链接处理逻辑。

Scrapy CrawlSpider 爬取深度设置指南

原文地址: https://www.cveoy.top/t/topic/p8ft 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录