python-pyspider-使用-脱坑记录

前言:经过小小折腾,安装好了pyspider。按照预期,在命令行输入pyspider all,然后再打开pyspider自带的webui就可以愉快地敲代码了。当我输入命令,duang,一连串的报错。填坑记录开始。。。
mark一下版本:python3.7(32位)
在这里插入图片描述

① 首先遇到了经典的语法错误无效:syntaxerror invalid syntax
看到这个的时候我一脸懵逼???我还什么都没写,就是想启动一下,怎么就会这样咧?莫非大佬的框架源码的某个地方敲错什么东西了?后面顺着往上看,发现一个小三角符号再async标注了。额,原来是async关键字被当成参数名了(这个框架是好几年前的了,python3.5的时候把async和await列为关键字,可能那时候作者写这个框架的时候还没有列为关键字)。。。
好吧,我去包里的源代码替换掉这个关键字(记得替换区分大小写!不然会遇到第②个坑)。从run.py修改
再运行,发现还报一样的错误,这次tornado_fetcher.py报错,再改。
再再运行,这回是webui目录下的app.py报错,再改。

在这里插入图片描述
② 使用的类的名字带有async的提示不存在该类
好不容易改完,本以为可以愉快地运行。没想到又双报错了。提示XXX类不存在。顺着错误找上去,发现怎么报错的是改动过的那几个py文件。这几个报错的类名中包含大写Async。原来是我全局搜索替换的时候忘记区分大小写,导致它们也被替换掉了。于是乎,我忍着泪又一个个慢慢的改回来了。
在这里插入图片描述

③ WsgiDAV版本问题
嘻嘻,总算改完了。这回总算可以了吧???输入pyspider all敲下回车启动,duang。咋滴个回事?又双叒报错。
报错内容”ValueError: Invalid configuration: - Deprecated option ‘domaincontroller’: use 'http_authenticator“。唉,又是动手搜索的时候,经查询,原因是WsgiDAV发布了版本 pre-release 3.x导致。
【解决方法1】
将wsgidav替换为2.4.1,使用命令:python -m pip install wsgidav==2.4.1

【解决方法2】
动手修改webui文件里面的webdav.py,修改webdav.py第209行

'domaincontroller': NeedAuthController(app),

修改为

'http_authenticator': {
    'HTTPAuthenticator':NeedAuthController(app),
},

在这里插入图片描述

又双叒叕输入命令pyspider all,这回终于运行成功了。

  1. 这回启动你可以看到一个警告:FutureWarning: timeout is not supported on your platform. 由于我的是Windows,没有linux的timeout命令。算了,这不影响使用。。。
  2. 另外,如果没有给phantomjs设置环境变量,它还会提示phantomjs not finded。如果不使用phantomjs也不影响。
  3. webui默认running在5000端口, 可以打开http://localhost:5000/进入webui界面创建项目编写代码。如果5000端口被占用,可以通过命令pyspider webui --port xxxx来指定端口。

在这里插入图片描述

心好累,用了一下,可能webui界面编写代码不怎么习惯。于是我又双叒叕打开cmd,输入pip install scrapy,看着一个个进度条刷刷地到达100%而且没有报错,我欣慰地露出笑容。于是我打开搜索引擎,输入了那句熟悉的话,scrapy从入门到精通(入土)。
在这里插入图片描述

参考文章
pyspider 启动错误遇到的一些坑
ValueError: Invalid configuration: - Deprecated option ‘domaincontroller’: use 'http_authenticator

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值