scrapyd部署遇到的问题
最近在scrapyd部署时,用了无数变了,老司机还是翻车了:
File "d:\python\virtualenv\env11\lib\site-packages\scrapyd\utils.py", line 140, in get_spider_list
            tmp = out.decode('utf-8').splitlines();
        builtins.AttributeError: 'str' object has no attribute 'decode'

思前想后,发现就是把scrapy从原来的1.5.0升级到了2.0.1,退回低版本也不行,另外也不是长久之计,咬牙去修改源码:
    if isinstance(out,bytes):
        tmp = out.decode('utf-8').splitlines();
    else:
        tmp = out.splitlines();

另外我的学生启动爬虫出现TypeError‘_job’错误:

scrapyd部署遇到的问题
搜了一下网上说在用scrapyd启动爬虫是,会向爬虫类中传入一个关键字参数
{‘_job’: ‘14241fc2c93d11e7b7be000c29464af7’}
在启动的时候生成有一个jobid的,而传进去的就是这个                     

需要在爬虫类的添加__init__():
def __init__(self,**kwargs):
    super(MovieSpider, self).__init__(self, **kwargs)

另外,需添加str函数,否则也会报错
def __str__(self):
    return “MovieSpider”

问题解决了,但是我电脑上又不需要这样做。

相关文章: