scrapy 2.3 類(lèi)蜘蛛CrawlSpider

2021-06-09 10:06 更新

Scrapy附帶了一些有用的通用蜘蛛,您可以使用它們來(lái)對(duì)蜘蛛進(jìn)行子類(lèi)化。他們的目標(biāo)是為一些常見(jiàn)的抓取案例提供方便的功能,比如根據(jù)特定規(guī)則跟蹤站點(diǎn)上的所有鏈接從 Sitemaps 或分析XML/CSV源。

對(duì)于以下蜘蛛中使用的示例,我們假設(shè)您有一個(gè)項(xiàng)目 ?TestItem? 宣布為 ?myproject.items? 模塊:

import scrapy

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

CrawlSpider

classscrapy.spiders.CrawlSpider

這是最常用的爬行常規(guī)網(wǎng)站的蜘蛛,因?yàn)樗ㄟ^(guò)定義一組規(guī)則為跟蹤鏈接提供了一種方便的機(jī)制。它可能不是最適合您的特定網(wǎng)站或項(xiàng)目的,但它對(duì)于某些情況來(lái)說(shuō)已經(jīng)足夠通用了,因此您可以從它開(kāi)始,并根據(jù)需要覆蓋它以獲得更多的自定義功能,或者只實(shí)現(xiàn)您自己的蜘蛛。

除了從spider繼承的屬性(必須指定),這個(gè)類(lèi)還支持一個(gè)新的屬性:

rules

這是一個(gè)(或多個(gè))列表 ?Rule? 物體。各 ?Rule? 定義對(duì)網(wǎng)站進(jìn)行爬行的特定行為。規(guī)則對(duì)象如下所述。如果多個(gè)規(guī)則與同一鏈接匹配,則將根據(jù)在該屬性中定義的順序使用第一個(gè)規(guī)則。

這個(gè)蜘蛛還公開(kāi)了一個(gè)可重寫(xiě)的方法:

parse_start_url(response**kwargs)

為spider中的url生成的每個(gè)響應(yīng)調(diào)用此方法 start_urls 屬性。它允許解析初始響應(yīng),并且必須返回 item object ,A ?Request? 對(duì)象,或包含任何對(duì)象的iterable。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)