[scrapyd] scrapyd 실행 좌충우돌기

제목: scrapyd 실행 좌충우돌기
# 환경 centos 7.3.1611 , python3.5, virtualenv

# install
$ pip install scrapyd # 1.1.1 설치됨. 2017.4.5일자

# start
$ scrapyd

# but error below

=> TypeError: a bytes-like object is required, not ‘str’
# 아직 python3를 지원하지 않아서 생긴문제
# so reinstall as below
$ pip install scrapyd’==1.2.0a1′
ref: https://github.com/scrapy/scrapyd/issues/143

# start
$ scrapyd

# scrapyd-client install : scrapyd-deploy를 이용하기 위해(deploy를 편하게 해줌)
$ pip install scrapyd-client

# deploy
$ scrapyd-deploy
c.f. 환경설정파일은 https://github.com/scrapy/scrapyd-client

# scheduling
$ curl http://localhost:6800/schedule.json -d project=crawlproject -d spider=crawlspider

# cancel scheduling
$ curl http://localhost:6800/cancel.json -d project=crawlproject -d job=<jobid>


# 에러발생 – schedule 명령시 에러 발생
TypeError: __init__() got an unexpected keyword argument ‘_job’
#해결책: 다음과 같이 spider의 __init__ 메서드 signature 수정
원래: def __init__(self):
수정: def __init__(self, **kwargs):

# cf. http://stackoverflow.com/questions/17975472/scrapyd-init-error-when-running-scrapy-spider
# 참고로 scheduling하지 않고 그냥 scrapy crawl spidername 하면 잘 돌아감

# scrapyd를 사용하면서 느낀 점 웹 UI가 좋지 않음.
scrapinghub를 쓰는 것이 좋겠다.

크롤링하면서 크롤하는 곳의 ip를 따진다면 scrapinghub를 사용할 수 없지만 그 외에는
scrapinghub를 쓰는 것이 좋다.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s