scrapy 2.3 类蜘蛛CrawlSpider
Scrapy附带了一些有用的通用蜘蛛,您可以使用它们来对蜘蛛进行子类化。他们的目标是为一些常见的抓取案例提供方便的功能,比如根据特定规则跟踪站点上的所有链接从 Sitemaps 或分析XML/CSV源。
对于以下蜘蛛中使用的示例,我们假设您有一个项目 TestItem
宣布为 myproject.items
模块:
import scrapy
class TestItem(scrapy.Item):
id = scrapy.Field()
name = scrapy.Field()
description = scrapy.Field()
CrawlSpider
- class
scrapy.spiders.
CrawlSpider
-
这是最常用的爬行常规网站的蜘蛛,因为它通过定义一组规则为跟踪链接提供了一种方便的机制。它可能不是最适合您的特定网站或项目的,但它对于某些情况来说已经足够通用了,因此您可以从它开始,并根据需要覆盖它以获得更多的自定义功能,或者只实现您自己的蜘蛛。
除了从spider继承的属性(必须指定),这个类还支持一个新的属性:
rules
-
这是一个(或多个)列表 Rule
物体。各 Rule
定义对网站进行爬行的特定行为。规则对象如下所述。如果多个规则与同一链接匹配,则将根据在该属性中定义的顺序使用第一个规则。
这个蜘蛛还公开了一个可重写的方法:
parse_start_url
(response, **kwargs)
-
为spider中的url生成的每个响应调用此方法 start_urls
属性。它允许解析初始响应,并且必须返回 item object ,A Request
对象,或包含任何对象的iterable。