2014-10-12 4 views
2

최근에 scrapyd에 작업 스크랩을 게시했습니다. 스크래핑을 실행할 때 아래에 오류 메시지가 표시됩니다. Scrapyd 오류 : exceptions.AttributeError : 'dict'객체에 'fields'속성이 없습니다.

내가이 폐쇄 문제 검토 : https://github.com/scrapy/scrapy/issues/86 및 워드 프로세서 당 권장되는 수정 프로그램을 구현 : http://scrapyd.readthedocs.org/en/latest/config.html

내 설정 파일이 여기에 살고 : /etc/scrapyd/conf.d/000-default

그럴 수 없어 items_dir을 none으로 설정하여 Feedexporter 확장을 사용하지 않는 것 같습니다. scrapyd에서 feedexporter를 비활성화하는 새로운 방법이 있습니까?

구성 파일 :

[scrapyd] 
http_port = 6800 
debug  = off 
#max_proc = 1 
eggs_dir = /var/lib/scrapyd/eggs 
dbs_dir = /var/lib/scrapyd/dbs 
items_dir = 
logs_dir = /var/log/scrapyd 

오류 메시지 :

2014-10-12 06:29:15-0500 [jsc] ERROR: Error caught on signal handler: <bound method ?.item_scraped of <scrapy.contrib.feedexport.FeedExporter object at 0x7fc879ff82d0>> 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 577, in _runCallbacks 
    current.result = callback(current.result, *args, **kw) 
    File "/usr/lib/pymodules/python2.7/scrapy/core/scraper.py", line 215, in _itemproc_finished 
    item=output, response=response, spider=spider) 
    File "/usr/lib/pymodules/python2.7/scrapy/signalmanager.py", line 23, in send_catch_log_deferred 
    return signal.send_catch_log_deferred(*a, **kw) 
    File "/usr/lib/pymodules/python2.7/scrapy/utils/signal.py", line 53, in send_catch_log_deferred 
    *arguments, **named) 
--- <exception caught here> --- 
    File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 139, in maybeDeferred 
    result = f(*args, **kw) 
    File "/usr/lib/pymodules/python2.7/scrapy/xlib/pydispatch/robustapply.py", line 54, in robustApply 
    return receiver(*arguments, **named) 
    File "/usr/lib/pymodules/python2.7/scrapy/contrib/feedexport.py", line 190, in item_scraped 
    slot.exporter.export_item(item) 
    File "/usr/lib/pymodules/python2.7/scrapy/contrib/exporter/__init__.py", line 87, in export_item 
    itemdict = dict(self._get_serialized_fields(item)) 
    File "/usr/lib/pymodules/python2.7/scrapy/contrib/exporter/__init__.py", line 71, in _get_serialized_fields 
    field = item.fields[field_name] 
exceptions.AttributeError: 'dict' object has no attribute 'fields' 
+0

덧글 1 개. items_dir = 0 및 items_dir = None으로 스크래핑을 실행하려고했습니다. 둘 다 일하지 않아. – dfriestedt

+0

scrapyd에 대한 알려진 문제점 : https://github.com/scrap/scrapyd/issues/56 – dfriestedt

답변

1

나는

EXTENSIONS = {'scrapy.contrib.feedexport.FeedExporter': None} 

이 FeedExporter 비활성화의 settings.py에 다음 행을 추가하여 scrapyd에 FeedExporter을 해제 할 수 있었다 문제를 해결했다.