Scrapy爬虫爬取书籍网站信息(三)

爬虫程序到这里虽说已经成功,但也有让人不满意的地方,比如csv中各列的顺序是随机的,看起来比较混乱,可在配置文件settings.py中使用FEED_EXPORT_FIELDS指定各列的次序:

FEED_EXPORT_FIELDS=['upc','name','price','stock','review_rating','review_num']

另外,结果中评价等级字段的值是One、Two、Three......这样的单词,我们可以将它们改为阿拉伯数字,下面实现一个Item Pipeline,将单词映射到数字。在pipelines.py中实现BookPipeline,代码如下:

class BookPipeline(object):
    review_rating_map={
        'One':  1,
        'Two':  2,
        'Three': 3,
        'Four': 4,
        'Five': 5,
        }
    def process_item(self,item,spider):
        rating=item.get('review_rating')
        if rating:
            item['review_rating']=self.review_rating_map[rating]



        return item

在配置文件settings.py中启用BookPipeline:

ITEM_PIPELINES = {
    'toscrape_book.pipelines.BookPipeline': 300,
}

重新运行爬虫并观察结果:

$scrapy crawl books -o books.csv --nolog

在爬虫文件目录下查看爬取结果,部分截图如下:


此时,各字段已经按指定次序排列,并且评价等级字段的值是我们所期望的阿拉伯数字。

到此为止,整个项目完成了!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值