scrapy 2.3 類蜘蛛CrawlSpider

2021-06-09 10:06 更新

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

對于以下蜘蛛中使用的示例,我們假設(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ī)則為跟蹤鏈接提供了一種方便的機(jī)制。它可能不是最適合您的特定網(wǎng)站或項(xiàng)目的,但它對于某些情況來說已經(jīng)足夠通用了,因此您可以從它開始,并根據(jù)需要覆蓋它以獲得更多的自定義功能,或者只實(shí)現(xiàn)您自己的蜘蛛。

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

rules

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

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

parse_start_url(response**kwargs)

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號