【问题标题】:Enable accents in Scrapy's JSON exporting?在 Scrapy 的 JSON 导出中启用重音符号?
【发布时间】:2017-01-30 11:02:28
【问题描述】:

我正在使用 Python 2.7 和 Scrapy 1.3 我的 Scrapy 代码是:

import scrapy

class CinemaSpider(scrapy.Spider):
    name = "cinema"
    allowed_domains = ['cineroxy.com.br']
    start_urls = [
        'http://cineroxy.com.br/programacao-brisamar',
    ]

    def parse(self, response):
        movie_names = response.css('.titulo p::text').extract()
        for movie_name in movie_names:
            yield {
                'name': movie_name.strip()
            }

我是这样执行的:

C:\Python27\Scripts>scrapy runspider cinema_scraper.py -o movies.json

结果:

[
{"name": "A Bailarina"},
{"name": "Assassins Creed - O Filme"},
{"name": "Cinquenta Tons Mais Escuros"},
{"name": "Minha M\u00e3e \u00e9 uma Pe\u00e7a 2"},
{"name": "Moana - Um Mar de Aventura"},
{"name": "Os Penetras 2 - Quem D\u00e1 Mais?"},
{"name": "Quatro Vidas de Um Cachorro"},
{"name": "Resident Evil 6: O \u00daltimo Cap\u00edtulo"},
{"name": "xXx: Reativado"}
]

如何修正重音符号

Minha M\u00e3e \u00e9 uma Pe\u00e7a 2
Os Penetras 2 - Quem D\u00e1 Mais?
Resident Evil 6: O \u00daltimo Cap\u00edtulo

?

提前谢谢..

【问题讨论】:

    标签: css json scrapy


    【解决方案1】:

    使用FEED_EXPORT_ENCODING 选项:

    FEED_EXPORT_ENCODING = 'utf-8'
    

    你可以在你的 settings.py 中设置它,或者在 custom_settings 蜘蛛属性中,或者通过命令行:

    scrapy runspider cinema_scraper.py -s FEED_EXPORT_ENCODING=utf8 -o movies.json
    

    【讨论】:

    • 我将C:\Python27\Lib\site-packages\scrapy\settings\default_settings.py 中的FEED_EXPORT_ENCODING = None 更改为FEED_EXPORT_ENCODING = 'utf-8' 并且成功了!谢谢!
    • 更改 default_settin‌​gs.py 通常是个坏主意 - 如果您升级或重新安装 Scrapy,更改将不会持续。如果您想避免在命令行中写入 FEED_EXPORT_ENCODING,并且您没有 settings.py 文件(即您没有使用 Scrapy 项目),那么更好的方法是使用 set custom_settings 蜘蛛属性:在后面添加 custom_settings = {'FEED_EXPORT_ENCODING': 'utf-8'}name = "cinema"
    • 我确实有 settings.py,但每次尝试在其上写入 FEED_EXPORT_ENCODING 均不成功。我尝试将该行写入我的代码,但也没有奏效。我目前正在使用您建议的命令行,没关系。
    【解决方案2】:

    我们可以使用FEED_EXPORT_ENCODING='utf-8',但是使用这个选项和他的值不带空格非常重要:

    scrapy runspider cinema_scraper.py -s FEED_EXPORT_ENCODING='utf-8' -o movies.json 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 2018-03-25
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 2015-02-27
      相关资源
      最近更新 更多