Scrapy CrawlSpider 爬取深度设置指南
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 中解析了网页内容。可以根据实际需求,自定义回调函数和链接处理逻辑。
原文地址: https://www.cveoy.top/t/topic/p8ft 著作权归作者所有。请勿转载和采集!