PySpider 使用过程中的问题记录

in 编程

问题记录

PyCurl的问题

安装时出现:

这个问题是系统的libcurl编译方式引起的,更改环境变量为openssl即可。

解决方法来自这里

解决方式:

 sudo pip uninstall pycurl
 # 设置环境变量
 export PYCURL_SSL_LIBRARY=openssl

wsgidav的问题

运行时出现Deprecated option 'domaincontroller': use 'http_authenticator.domain_controller' instead.

此问题是因为wsgidav最新版为3.x,pyspider采用的是2.x,写法上不兼容老版本,因此解决方法有两种:

tornado的问题

同上描述,默认安装的tornado为5.x,与pyspider所使用的老版本不兼容,卸载后安装指定4.x把版本即可。

 pip install tornado==4.5

ModuleNotFoundError: No module named 'MySQLdb'

缺少包,python2环境下pip安装mysqldb,python3环境下安装MySQLclient

connect to scheduler rpc error: error(111, ‘Connection refused’)

这个问题没解决……

爬虫框架是分组件的,pyspider在运行时可以直接pyspider all,也可以单独运行scheduler,如果是前者,跑一会就会出现这个错误,如果是后者,得跑好一会才会出现,无法查到相关资料。

pyspider和scrapy对比哪个好?

没有哪个好哪个不好,适合自己的才是最好,那么哪个才是适合自己的?

pyspider自带webui,可以在浏览器中写代码(很不方便),其代码存储在sqlite3中的,作者说是为了方便做分布式,但我在使用时都是在pycharm中写完再复制到浏览器中,虽然pyspider也提供了webdav,可以将代码映射到本地,但还是很不方便,喏,上面wsgidav的bug就这么产生的:(

pyspider运行时可以「单步调试」,非常适合新手期,爬虫运行的每一步都可以在浏览器中看到。

而scrapy是纯命令行模式,如果要跑在服务器上,也需要配合一些爬虫管理框架,如scrapydScrapydWeb

scrapy的中间件是一大亮点,别人写好的你可以直接拿来用。

麻烦是麻烦了点,但你学会后就犹如手握屠龙刀,强大无匹。

还有scrapy的官网比较漂亮,文档相当清晰,pyspider的文档应该是N年没更新了,且不详细。

截止到写本文时,pyspider的最后一个release版本是2018年4月18的0.3.10,开发版是到今年3月份,项目几乎是作者一个人维护,所以在issue和更新上不如scrapy。

总结一下,个人建议,仅供参考,如果是刚入门的新手,建议学习下pyspider练手,毕竟多学一点又不亏,如果是公司项目,建议scrapy。

Responses