【问题标题】:Scrapy CLI output - CSV_DELIMITER parameter not workingScrapy CLI 输出 - CSV_DELIMITER 参数不起作用
【发布时间】:2017-07-09 14:32:58
【问题描述】:

我正在尝试通过 CLI 使用自定义分隔符运行 scrapy 导出器,如下所示:

scrapy runspider beneficiari_2016.py -o beneficiari_2016.csv -t csv -a CSV_DELIMITER="\n"

导出效果很好,但分隔符仍然是默认的逗号(“,”)。

如果您知道如何修复它,请告诉我。谢谢!

代码:

import scrapy
from scrapy.item import Item, Field
import urllib.parse

class anmdm(Item):
    nume_beneficiar = Field()

class BlogSpider(scrapy.Spider):
    name = 'blogspider'
    start_urls = ['http://www.anm.ro/sponsorizari/afisare-2016/beneficiari?
    page=1']
    def parse(self, response):
        doctor = anmdm()
        doctors = []
        for item in response.xpath('//tbody/tr'):
            doctor['nume_beneficiar'] = 
        item.xpath('td[5]//text()').extract_first()
            yield doctor
        next_page =  response.xpath("//ul/li[@class='active']/following-
       sibling::li/a/@href").extract_first()
        if next_page is not None:
            next_page = response.urljoin(next_page)
            print(next_page)
            yield response.follow(next_page, self.parse)

【问题讨论】:

标签: python csv scrapy web-crawler delimiter


【解决方案1】:

CSV_DELIMITER 需要在 settings 中更改,而不是像蜘蛛参数 -a

要在命令行上更改设置,请使用-s:

scrapy runspider beneficiari_2016.py -o beneficiari_2016.csv -t csv -s CSV_DELIMITER="\n"

【讨论】:

  • 感谢您的反馈。遗憾的是,添加 '-s CSV_DELIMITER="\n"' 不起作用 - CSV 分隔符仍然是默认逗号。仅供参考,我在 Mac 上使用带有 Python3 的 Scrapy 1.4.0。
  • 这实际上是覆盖设置的正确方法。实际上,您应该使用 -s 而不是 -a。但是使用 Scrapy 1.4.0 和 Python3 我有同样的问题。文件中还是逗号。
猜你喜欢
  • 2015-11-24
  • 2019-03-10
  • 2018-07-16
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多