pyspider是国人binux编写的强大的网络爬虫框架,它带有强大的WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,同时支持多种数据库后端、多种消息队列,另外还支持JavaScript渲染页面的爬取,使用起来非常方便。
准备工作
pyspider是支持JavaScript渲染的,而这个过程是依赖于PhantomJS的,所以还需要安装PhantomJS。
PhantomJS的安装
PhantomJS是一个无界面的、可脚本编程的WebKit浏览器引擎,它原生支持多种Web标准:DOM操作、CSS选择器、JSON、Canvas以及SVG。
下载PhantomJS
我们需要在官方网站下载对应的安装包,PhantomJS支持多种操作系统,比如Windows、Linux、Mac、FreeBSD等,我们可以选择对应的平台并将安装包下载下来。
下载完成后,将PhantomJS可执行文件所在的路径配置到环境变量里。比如在Windows下,将下载的文件解压之后并打开,会看到一个bin文件夹,里面包括一个可执行文件phantomjs.exe,我们需要将它所在的路径配置到环境变量里。
配置成功后,可以在命令行下测试一下,输入:
phantomjs
如果可以进入到PhantomJS命令行,那就证明配置完成了,如图所示。
pip安装
这里推荐使用pip安装,命令如下:
pip install pyspider
命令执行完毕即可完成安装,如图所示。
验证安装
安装完成之后,可以直接在命令行下启动pyspider:
pyspider all
此时控制台会有如图所示的输出。
通过控制台的运行结果可以发现,pyspider根本没运行,直接因为语法错误而崩溃,按理来说人家编写的模块不可能有错~!不要胡思乱想了,面对现实吧~!我们可以发现这个语法错误指向async这个变量附近,难道async作为变量名有错吗?!老版本没有,3.7有,因为3.7把async作为关键字了,我们都知道,关键字是不能作为变量名的,如何修改这个错误呢?当然是直接修改源代码喽~!这也能修改?!不要怕~!放心大胆地改!如果出现了不可挽回的错误也就是重装一个模块而已,也就一分钟的事情~!修改好了之后我们重新执行pyspider all这个命令,如图所示。
可以发现它一直卡在那里。这个坑我填了很长时间,网上各种办法都试了,技术交流群也问了个遍,依旧不成功!就在我准备放弃的时候,看到最上面有一个警告,稍微翻译一下这个警告:你的平台(Windows)不支持超时。如果真的是因为这个警告导致它卡在那里,那就简单了,我换个Linux平台呗~!换个平台把环境都配置好,之前的坑都填好之后,执行命令pyspider all会有如下输出。
这时pyspider的Web服务会在本地5000端口运行。直接浏览器中打开http://localhost:5000/,即可进入pyspider的WebUI管理页面,如图所示,这证明pyspider安装成功了。
终于成功了~!真是踏破铁鞋无觅处,得来全不费功夫啊~!如果大家还是装不上或者有其它问题的可以加群,群号:822163725,备注:小陈学Python,不备注可是会被拒绝的哦~!
最后欢迎大家扫码关注