Scrapy專案(Items)


Scrapy進程可通過使用蜘蛛提取來自網頁中的資料。Scrapy使用Item類生成輸出物件用於收刮資料。

宣告專案

如下圖所示,您可以通過使用欄位物件和類定義語法宣告專案:
import scrapy
class MyProducts(scrapy.Item):
    productName = Field()
    productLink = Field()
    imageURL = Field()
    price = Field()
    size = Field()

專案欄位

專案欄位用於顯示每個欄位的後設資料。欄位物件上的值沒有限制,可存取後設資料的鍵不包含的後設資料的任何參照列表。欄位物件用於指定所有欄位後設資料,您可以根據專案您的要求指定任何其他欄位鍵。欄位物件可以通過使用 Item.fields 屬性進行存取。

使用專案

當在使用專案工作時,可以定義一些常用功能。欲瞭解更多資訊,請點選此連結

擴充套件專案

專案可以從原始專案的子類宣告進行擴充套件。 例如:
class MyProductDetails(Product):
   original_rate = scrapy.Field(serializer=str)
   discount_rate = scrapy.Field()
可以通過使用現有的欄位後設資料新增更多的值,或者改變現有值來擴充套件,如下面的程式碼:
class MyProductPackage(Product):
   name = scrapy.Field(Product.fields['name'], serializer=serializer_demo)

專案物件

Item 物件可以通過使用以下類,它從指定的引數提供新的初始化專案:
class scrapy.item.Item([arg]) 

Item 提供了一個建構函式的副本,並由在 fields 中的專案提供額外的屬性。 

欄位物件

欄位物件可以通過使用下面類中的Field類,不發出附加處理或屬性來指定:
class scrapy.item.Field([arg])