在第一篇如何寫第乙個scrapy裡面,我們是使用字典來對資料進行傳遞,使用字典有以下缺點。
無法直觀地了解資料中包含哪些字段
缺乏對欄位名字的檢測
不便於攜帶元資料
為了克服上述問題,我們可以使用scrapy中自定義的item類封裝爬取到的資料。
spider.py檔案新建乙個檔案bookitem.py可以看到執行結果如下:from scrapy import item,field
class
bookitems
(item):
name = field
() price = field
()
正確傳送了name和price資料。
item = bookitems()首先例項化bookitems,然後將解析得到的name和price傳入給item,並用yield返回給引擎處理。item[『name』] = name
item[『price』] = price
yield item
注意,這裡item的鍵是和定義的字段相對應的,如果寫成item[『names』] = name,會報錯。
class bookitems(item):item類是自定義資料類(bookitems)的基類,需要被自定義資料類繼承。name = field()
price = field()
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 ...