我爱编程

scrapy-3.items并存入csv/json

2018-06-17  本文已影响0人  ddm2014

如果只是把数据打印出来,还是有些不太够用,scrapy还提供了各种存储途径。
items我觉得有点像pandas里的列,名字就是列名。items文件已经写好框架只要把你需要爬取的名字加进去就好。

import scrapy

class ZdmItem(scrapy.Item):
    # define the fields for your item here like:
    name = scrapy.Field()
    price = scrapy.Field()
    # pass

然后更改spider程序。

import scrapy
from pyquery import PyQuery as pq
#导入items
from zdm.items import ZdmItem  

class SmzdmCrawler(scrapy.Spider):
    name = 'smzdm'
    start_urls = ['https://faxian.smzdm.com/']

    def parse(self, response):
        res = pq(response.body)
        for item in res('.feed-block-ver').items():
            yield scrapy.Request(item('a').attr('href'),self.parse_detail)

    def parse_detail(self,response):
        res = pq(response.body)
        #导入item,添加内容
        zdmitem = ZdmItem()           
        zdmitem['name'] = res('.article_title em').eq(0).text()
        zdmitem['price'] = res('.article_title span').text()
        yield zdmitem

更改之处为导入item和把原本print的部分放入到item里去。

然后就可以存到json,csv等格式了。
只需要在terminal里输入
scrapy crawl smzdm -o smzdm.csv
scrapy crawl smzdm -o smzdm.json
就存好了

上一篇下一篇

猜你喜欢

热点阅读