保存在csv文件中的抓取数据不会转换为excel(xlsx)文件

时间:2018-07-26 15:51:37

标签: python excel csv scrapy

这是用于Web抓取和转换从csv保存的抓取数据的代码  格式化为“ .xlsx”文件。

当我使用命令行-scrapy crawl spider_name -o file_name.csv通过从将数据抓取到csv中提取来运行此代码时  格式,项目文件夹中不会生成excel文件。没有错误信息。请提出解决该未知问题的方法。

import os
import scrapy
import csv
import glob
from openpyxl import Workbook

class QuotesSpider(scrapy.Spider):
    name = "quotes"
    allowed_domains = ["quotes.toscrape.com"]
    start_urls = (
        'http://quotes.toscrape.com/',
    )

    def parse(self, response):
        h1_tag = response.xpath('//h1/a/text()').extract_first()
        tags = response.xpath('//*[@class="tag-item"]/a/text()').extract()

        yield {'H1 Tag': h1_tag, 'Tags': tags}

    def close(self, reason):
        csv_file = max(glob.iglob("*.csv"), key=os.path.getctime)

        wb = Workbook()
        ws = wb.active

        with open(csv_file, 'r') as f:
            for row in csv.reader(f):
                ws.append(row)

        wb.save(csv_file.replace('.csv', '') + '.xlsx')

1 个答案:

答案 0 :(得分:0)

尝试此命令:

 scrapy crawl <spider name> -o file.csv -t csv