精通Scrapy网络爬虫【四】 Item

174 阅读1分钟

使用Item封装数据

在items.py中实现BookItem,代码如下:

import scrapy

class BookItem(scrapy.Item):
    
    name = scrapy.Field()
    price = scrapy.Field()

使用BookItem替代Python字典

   def parse(self, response):
        for book in response.css('article.product_pod'):
            books=BookItem()
            books['name']=book.xpath('./h3/a/@title').extract_first()
            books['price']=book.css('p.price_color::text').extract_first()
            yield books

拓展Item子类

对已有的自定义数据类(Item子类)进行拓展

继承BookItem定义一个ForeignBookItem类,在其中添加一个译者字段

class BookItem(scrapy.Item):
    name = scrapy.Field()
    price = scrapy.Field()


class ForeignBookItem(BookItem):
    translator = scrapy.Field()

参考资料:《精通Scrapy网络爬虫》刘硕 清华大学出版社