如何使用scrapy的item來封裝資料

2021-08-21 22:41:33 字數 1815 閱讀 6400

在第一篇如何寫第乙個scrapy裡面,我們是使用字典來對資料進行傳遞,使用字典有以下缺點。

無法直觀地了解資料中包含哪些字段

缺乏對欄位名字的檢測

不便於攜帶元資料

為了克服上述問題,我們可以使用scrapy中自定義的item類封裝爬取到的資料。

spider.py檔案

新建乙個檔案bookitem.py

from scrapy import item,field

class

bookitems

(item):

name = field

() price = field

()

可以看到執行結果如下:

正確傳送了name和price資料。

item = bookitems()

item[『name』] = name

item[『price』] = price

yield item

首先例項化bookitems,然後將解析得到的name和price傳入給item,並用yield返回給引擎處理。

注意,這裡item的鍵是和定義的字段相對應的,如果寫成item[『names』] = name,會報錯。

class bookitems(item):

name = field()

price = field()

item類是自定義資料類(bookitems)的基類,需要被自定義資料類繼承。

field類是用來描述自定義資料類包含哪些字段,如name、price等。

該篇簡單介紹了item基類和用來定義欄位的field類的用法,還有更多的用法以後再學習。

如何使用scrapy的item來封裝資料

無法直觀地了解資料中包含哪些字段 缺乏對欄位名字的檢測 不便於攜帶元資料 為了克服上述問題,我們可以使用scrapy中自定義的item類封裝爬取到的資料。spider.py檔案 新建乙個檔案bookitem.py from scrapy import item,field class bookite...

Scrapy中的item是什麼

這兩天看scrapy,看到item這個東西,覺得有點抽象,查了一下,有點明白了。item 是儲存爬取到的資料的容器 其使用方法和python字典類似,並且提供了額外保護機制來避免拼寫錯誤導致的未定義字段錯誤。爬取的主要目標就是從非結構性的資料來源提取結構性資料,例如網頁。scrapy提供 item ...

Scrapy中的item是什麼

這兩天看scrapy,看到item這個東西,覺得有點抽象,查了一下,有點明白了。item 是儲存爬取到的資料的容器 其使用方法和python字典類似,並且提供了額外保護機制來避免拼寫錯誤導致的未定義字段錯誤。爬取的主要目標就是從非結構性的資料來源提取結構性資料,例如網頁。scrapy提供 item ...