scrapy 2.3 类蜘蛛CrawlSpider

2021-06-09 10:06 更新

Scrapy附带了一些有用的通用蜘蛛,您可以使用它们来对蜘蛛进行子类化。他们的目标是为一些常见的抓取案例提供方便的功能,比如根据特定规则跟踪站点上的所有链接从 Sitemaps 或分析XML/CSV源。

对于以下蜘蛛中使用的示例,我们假设您有一个项目 ​TestItem​ 宣布为 ​myproject.items​ 模块:

import scrapy

class TestItem(scrapy.Item):
    id = scrapy.Field()
    name = scrapy.Field()
    description = scrapy.Field()

CrawlSpider

classscrapy.spiders.CrawlSpider

这是最常用的爬行常规网站的蜘蛛,因为它通过定义一组规则为跟踪链接提供了一种方便的机制。它可能不是最适合您的特定网站或项目的,但它对于某些情况来说已经足够通用了,因此您可以从它开始,并根据需要覆盖它以获得更多的自定义功能,或者只实现您自己的蜘蛛。

除了从spider继承的属性(必须指定),这个类还支持一个新的属性:

rules

这是一个(或多个)列表 ​Rule​ 物体。各 ​Rule​ 定义对网站进行爬行的特定行为。规则对象如下所述。如果多个规则与同一链接匹配,则将根据在该属性中定义的顺序使用第一个规则。

这个蜘蛛还公开了一个可重写的方法:

parse_start_url(response**kwargs)

为spider中的url生成的每个响应调用此方法 start_urls 属性。它允许解析初始响应,并且必须返回 item object ,A ​Request​ 对象,或包含任何对象的iterable。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号