scrapy导出csv重新列排序item的问题

(1)sv_item_exporter.py

首先,在spiders文件夹下,新建个文件,名叫:csv_item_exporter.py

里面内容为

from scrapy.conf import settings
from scrapy.exporters import CsvItemExporter


class MyProjectCsvItemExporter(CsvItemExporter):

    def __init__(self, *args, **kwargs):
        delimiter = settings.get('CSV_DELIMITER', ',')
        kwargs['delimiter'] = delimiter

        fields_to_export = settings.get('FIELDS_TO_EXPORT', [])
        if fields_to_export:
            kwargs['fields_to_export'] = fields_to_export

        super(MyProjectCsvItemExporter, self).__init__(*args, **kwargs)

(2)设置settings.py配置

在settings.py后面加入下面代码

FEED_EXPORTERS = {
    'csv': 'hotsale.spiders.csv_item_exporter.MyProjectCsvItemExporter',
}

FIELDS_TO_EXPORT = [
    'sid',
    'star',
    'reviews',
    'price',
    'rank',
    'title',
    'salesrank'
]

FIELDS_TO_EXPORT=[]

这个排序字段更换成items.py里面的字段,按需要的顺序排列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy中,你可以使用以下步骤将数据保存到CSV文件中: 1. 在项目的settings.py文件中添加以下代码以启用CSV输出: ```python FEED_FORMAT = 'csv' FEED_URI = 'output.csv' ``` 其中,FEED_FORMAT指定了输出格式为CSV,FEED_URI指定了输出文件的路径和名称。 2. 在Spider中定义item并将其导出CSV文件中。例如,假设你有一个Spider,它从网站中提取了书籍的信息。你可以在Spider中定义一个item,然后将其导出CSV文件中。以下是一个示例: ```python import scrapy from scrapy.loader import ItemLoader from scrapy.item import Item, Field class BookItem(Item): title = Field() author = Field() price = Field() class BooksSpider(scrapy.Spider): name = "books" start_urls = [ 'http://books.toscrape.com/catalogue/category/books/science_22/index.html' ] def parse(self, response): for book in response.css('article.product_pod'): loader = ItemLoader(item=BookItem(), selector=book) loader.add_css('title', 'h3 a::attr(title)') loader.add_css('author', 'a::attr(href)') loader.add_css('price', 'p.price_color::text') yield loader.load_item() ``` 在这个示例中,我们定义了一个BookItem类,它有三个属性:title,author和price。在Spider中,我们使用ItemLoader加载器将每个书籍的信息加载到BookItem对象中,然后使用yield语句将其输出到CSV文件中。 3. 运行Spider并查看CSV文件。运行以下命令来启动Spider: ``` scrapy crawl books ``` 当Spider运行时,它会将提取到的数据输出到CSV文件中。你可以打开output.csv文件来查看结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值