scapyd部署出现的问题的解决方案

1. 使用scrapyd-deploy部署时,发现spiders为0的排查,首先用 scrapy list 看一下是否可以识别

  1. windows下 scrapyd-deploy无后缀文件不能启动:

解决方案一:

执行命令pip install scrapy-client,安装完成后,在虚拟环境的scripts中会出现scrapyd-deploy无后缀文件,这个scrapyd-deploy无后缀文件是启动文件,在Linux系统下可以运行,在windows下是不能运行的,所以我们需要编辑一下使其在windows可以运行。

这里写图片描述

新建一个scrapyd-deploy.bat文件,右键选择编辑,输入以下配置,注意:两个路径之间是空格 

@echo off 
“E:\Envs\py2Scrapy\Scripts\python.exe” “E:\Envs\py2Scrapy\Scripts\scrapyd-deploy” %*

解决方案二:用python 执行,如下格式

python E:\env\Anaconda2\envs\python2714\Scripts\scrapyd-deploy -p myproject  注:E:\env\Anaconda2\envs\python2714\Scripts是按照路径

.执行 scrapy list 命令的时候出现错误

执行 scrapy list 命令的时候很有可能出现错误,如果是python无法找到scrapy项目,需要在scrapy项目里的settings.py配置文件里设置成python可识别路径 
将当前项目的一级目录TotalSpider目录添加到python可以识别目录中

BASE_DIR = os.path.dirname(os.path.abspath(os.path.dirname(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, “TotalSpider”))

这里写图片描述

3.远程计算机拒绝

如果错误提示,什么远程计算机拒绝,说明你的scrapy项目有链接远程计算机,如链接数据库或者elasticsearch(搜索引擎)之类的,需要先将链接服务器启动

4.windows下打包失败

这里写图片描述

不用管,多提交几次,直到你的egg文件夹中有项目即可。然后重启服务,就可以去开启爬虫。

5.启动爬虫后出现TypeError‘_job’错误

这里写图片描述

这是因为在用scrapyd启动爬虫是,会向爬虫类中传入一个关键字参数 
{‘_job’: ‘14241fc2c93d11e7b7be000c29464af7’} 
在启动的时候生成有一个jobid的,而传进去的就是这个 
这里写图片描述

爬虫类添加

在spider的__init__(self,XXX)方法中添加* kwargs,改完为__init__(self,XX,* kwargs)

def __init__(self,**kwargs):
super(ProductSpider, self).__init__(self, **kwargs)

另外,需添加__str__函数,否则也会报错

def __str__(self):
    return “ProductSpider” 

参考:https://blog.csdn.net/dream8062/article/details/78924966

猜你喜欢

转载自blog.csdn.net/xc_zhou/article/details/80935723