打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PySpider 使用过程中的问题记录

问题记录

PyCurl的问题

安装时出现:

  • Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-vqUn8V/pycurl

  • ImportError: pycurl: libcurl link-time ssl backend (nss) is different from compile-time ssl backend (openssl)

这个问题是系统的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,写法上不兼容老版本,因此解决方法有两种:

  • 将wsgidav卸载后安装指定2.4.1版本


    1. pip uninstall wsgidav
    2. pip install wsgidav==2.4.1
  • 修改pyspider文件


    解决方法来自这里

    1. # pyspider文件路径 pyspider/webui/webdav.py
    2. # 209行:'domaincontroller': NeedAuthController(app)
    3. # 修改如下
    4. config = DEFAULT_CONFIG.copy()
    5. config.update({
    6. 'mount_path': '/dav',
    7. 'provider_mapping': {
    8. '/': ScriptProvider(app)
    9. },
    10. #'domaincontroller': NeedAuthController(app),
    11. 'http_authenticator': {
    12. 'HTTPAuthenticator':NeedAuthController(app),
    13. },
    14. 'verbose': 1 if app.debug else 0,
    15. 'dir_browser': {'davmount': False,
    16. 'enable': True,
    17. 'msmount': False,
    18. 'response_trailer': ''},
    19. })
    20. dav_app = WsgiDAVApp(config)

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。


本文最先发表于个人网站「花墨世界」

关注公众号查看我的更多文章:花墨世界

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
安装pyspider出现的问题
小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装
踩坑记:终于怀着忐忑的心情完成了对 python 爬虫扩展库 pyspider 的安装
pyspider all 会遇到的诸多拦路虎!(Python3.7)
Python 爬虫(七):pyspider 使用
PySpider框架安装配置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服