2017-05-14 4 views
0

중국어 웹 사이트를 고칩니다.FEED_EXPORT_ENCODING 옵션이 Scrapyd의 항목 파일에 대해 작동하지 않습니다 - Python Scrapy

나는 settings.py 파일에

FEED_EXPORT_ENCODING='utf-8'

있습니다.

내가

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

'FEED_EXPORT_ENCODING'은 버전 1.2.0 ([이 특정 커밋에서] (https://github.com/scrapy/scrapy/commit/33a39b368ffab6641997e7611d588487176716de))과 함께 제공됩니다. Scrapyd 환경에서 어떤 버전의 Scrapy가 사용되고 있습니까? – starrify

+0

'Scrap 1.3.3'과'twisted (Twisted daemon) 16.4.1' – Umair

답변

1

지금까지는 Scrapyd가 FEED_EXPORT_ENCODING으로 잘못했을 수있는 것을 보지 못했습니다. 정확히 (정확히 말하자면, 손대지 말고) 그 설정을 존중해야합니다.

내가 Scrapyd를 통해 내 스크레이퍼를 시작하는 경우 그러나 http://my-website:6800/jobs에서 만든 항목이 인코딩되지 않고 올바르지 않습니다.

방금 ​​브라우저 창에 조회 한 품목, 또는 로컬 디스크에 전체 콘텐츠를 다운로드하고 UTF-8을 지원하는 접근 방식을 사용하여 볼습니까?
Scrapyd의 웹 서비스는 항목을 제공 할 때 인코딩을 지정하지 않으므로 ( code) 오해가 발생할 수 있습니다. 그러나 서버 ( sample path)에 생성 된 항목 파일은 괜찮습니다. 그것을 확인할 수 있습니까?

+0

당신이 맞아요, 브라우저에서 보았는데 다운로드했는데 괜찮아 보입니다 ...하지만 JSONLines ... ... 내가 원하는 또 다른 것은 JSON을 아름답게 만들어서 읽을 수있게하는 것입니다. – Umair

+0

@ Umair 큰 JSON 개체는 메모리 비우호적이기 때문에 JSON을 통해 JSON 행 형식을 긁어 저장하는 것이 좋습니다. 가독성과 관련해서는 몇 가지 도구가 있습니다. ['jq'] (https://stedolan.github.io/jq/manual/)를 시도해보십시오. 'cat results.jl | jq'. – starrify