zoukankan      html  css  js  c++  java
  • pyspider安装使用遇到的坑

    一、pip install pyspider 安装出现错误:

    Command "python setup.py egg_info" failed with error code 10 in C:UsersxxxAppDataLocalTemppip-install-tc5uvu7lpycurl 

    经过网上大拿的经验需要安装wheel,执行命令pip3 install wheel安装,提示Successfully installed wheel-0.31.1代表安装成功,然后访问https://www.lfd.uci.edu/~gohlke/pythonlibs/下载相关安装文件,具体如下:

    PycURL, a interface to the libcurl library.
    pycurl‑7.43.1‑cp27‑cp27m‑win32.whl
    pycurl‑7.43.1‑cp27‑cp27m‑win_amd64.whl
    pycurl‑7.43.1‑cp34‑cp34m‑win32.whl
    pycurl‑7.43.1‑cp34‑cp34m‑win_amd64.whl
    pycurl‑7.43.1‑cp35‑cp35m‑win32.whl
    pycurl‑7.43.1‑cp35‑cp35m‑win_amd64.whl
    pycurl‑7.43.1‑cp36‑cp36m‑win32.whl
    pycurl‑7.43.1‑cp36‑cp36m‑win_amd64.whl
    pycurl‑7.43.1‑cp37‑cp37m‑win32.whl
    pycurl‑7.43.1‑cp37‑cp37m‑win_amd64.whl
    具体下载版本根据你使用的环境来定,比如我的是python3.7,然后python是32位版本,则需要选择pycurl‑7.43.1‑cp37‑cp37m‑win32.whl进行下载,注意:32或64位版本不是电脑的版本,是安装python的版本!!!
    下载后进行安装,命令 pip3 install D:pythondemopycurl-7.43.1-cp37-cp37m-win_amd64.whl执行,如果报错:
    pycurl-7.43.1-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.
    代表你安装的版本不对,就是上面所述的那个,我电脑是64位的,python是32位的,所以报错,然后下载pycurl‑7.43.1‑cp37‑cp37m‑win32.whl后再执行命令pip3 install D:pythondemopycurl-7.43.1-cp37-cp37m-win32.whl安装即可,提示Successfully installed pycurl-7.43.1及安装成功!
    费了很大事,最后再安装pyspider就OK了,执行命令pip3 install pyspider提示
    Successfully installed Flask-1.0.2 Flask-Login-0.4.1 Jinja2-2.10 MarkupSafe-1.0 PyYAML-3.13 Werkzeug-0.14.1 click-6.7 cssselect-1.0.3 defusedxml-0.5.0 itsdangerous-0.24 jsmin-2.2.2 lxml-4.2.5 pyquery-1.4.0 pyspider-0.3.10 tblib-1.3.2 tornado-4.5.3 u-msgpack-python-2.5.0 wsgidav-2.4.1

    二、PySpider在Python3.7上运行时会报错

    File "/usr/local/lib/python3.7/site-packages/pyspider/run.py", line 231
    async=True, get_object=False, no_input=False):
    ^
    SyntaxError: invalid syntax
    原因是python3.7中async已经变成了关键字。因此出现这个错误。
    修改方式是手动替换一下

    下面位置的async改为mark_async
    /usr/local/lib/python3.7/site-packages/pyspider/run.py 的231行、245行(两个)、365行
    /usr/local/lib/python3.7/site-packages/pyspider/webui/app.py 的95行
    /usr/local/lib/python3.7/site-packages/pyspider/fetcher/tornado_fetcher.py 的81行、89行(两个)、95行、117行

     三、

    ValueError: Invalid configuration:
    - Deprecated option 'domaincontroller': use 'http_authenticator.domain_controller' instead.

    3.1 最后定位在了wsgidav3.x问题,pyspider会默认安装wsgidav3.x,解决办法为先把3.x卸载,再装2.x(pip install wsgidav会默认安装2.x我安装的是2.4.1

    pip uninstall wsgidav
    pip install wsgidav
    如果安装的wsgidav本还是3.x,可以在卸载这个版本之后,在安装命令后面加上具体版本号

    python -m pip install wsgidav==2.4.1, 此方法未解决问题

    3.2 原因是因为WsgiDAV发布了版本 pre-release 3.x。

    解决方法如下:

    在安装包中找到pyspider的资源包,然后找到webui文件里面的webdav.py文件打开,修改第209行即可。

    把 'domaincontroller': NeedAuthController(app),

    修改为:

    'http_authenticator':{
    'HTTPAuthenticator':NeedAuthController(app),
    },
    首次执行pyspider all可能会卡在result_worker starting ...这里,需要用Ctrl + C 中断后重新打开CMD 输入pyspider all就成功了。

    四、在实际的调试中发现pyspider的Web预览界面只有一点非常小

    原因:web预览框过小的原因在于页面元素的css属性height被替换为60px
    所以我们需要更改CSS文件的内容,但是这个应该不是所有浏览器都通用,只是测试了Chrome浏览器是可以的

    修改debug.min.css文件内容如下: https://www.jianshu.com/p/7bff6fd4dc1b

    参考内容:

    1. https://segmentfault.com/a/1190000019487737?utm_source=tag-newest

    2. https://www.cnblogs.com/kerbside/p/9630388.html#commentform

    3. https://blog.csdn.net/qq_37253540/article/details/88196994

    4. https://www.jakehu.me/2019/pyspider/

    5. https://www.jianshu.com/p/7bff6fd4dc1b 

  • 相关阅读:
    Socket接受多包的问题
    用C#实现winform对数据库读写图片
    C#下载代码,防迅雷
    linux的用户和组
    计算机硬件基础
    操作系统及网络协议
    mysql cluster排错经验分享
    清空使用的swap方法
    智能DNS的安装和配置
    关于nginx和cacti的一次排错经历
  • 原文地址:https://www.cnblogs.com/jiguanghover/p/11364513.html
Copyright © 2011-2022 走看看