我正在抓中文网站。
我有
FEED_EXPORT_ENCODING='utf-8'
在settings.py
档案中。
如果我通过
运行我的刮刀 scrapy crawl myscraper -o output.json
然后我的输出文件显示正确的中文。
但如果我通过Scrapyd
启动我的刮刀,则http://my-website:6800/jobs
中创建的项目不会被编码且不正确。
为什么FEED_EXPORT_ENCODING='utf-8'
没有使用Scrapyd?
然后我设置了FEED_URI='files/output.json'
,然后通过Scrapyd跑了一下。
现在FEED_URI='files/output.json'
的输出文件格式/编码正确。
可能出现什么问题?
答案 0 :(得分:1)
现在我还没有看到Scrapyd可能做错FEED_EXPORT_ENCODING
的任何事情:它应该受到尊重(确切地说,未触动)设置。
但是如果我通过Scrapyd开始我的刮刀,则http://my-website:6800/jobs中创建的项目不会被编码而且不正确。
您刚刚在浏览器窗口中查看了这些项目,或者是否已将完整内容下载到本地磁盘上并使用支持UTF-8的方法查看了它? Scrapyd的webservice在提供项目(code)时没有指定编码,这可能导致错误解释。但是服务器上生成的项目文件(sample path)应该没问题。你能核实一下吗?