HOW2J 发表于 2020-2-24 20:07

python爬虫笔记——框架的安装

# 爬虫框架的安装   
  直接用requests、Selenium等库写爬虫,当爬取量不是太大,速度要求不高,是完全可以满足要求的。但是写多了会发现内部许多代码和组件是可以复用的,如果我们把这些组件抽离出来,将各个功能模块化,就慢慢会形成一个框架雏形,然后爬虫框架就形成了。

  利用框架,我们可以不用再去关心莫些共能得具体实现,只需要关心爬取逻辑即可。有了塔门,可以大大简化代码量,而且框架也会变得清晰,爬取效率也会高许多。所以,如果有一定得基础,上手框架是一种好的选择。

  爬虫框架有pyspider和Scrapy。下面是pyspider、Scrapy及其扩展库的安装方式。

## 1. pyspider的安装
  pyspider是国人binux编写的强大的网络爬虫框架,它带有强大的WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,同时支持多种数据库后端、多种消息列队,另外还支持Javascript渲染页面的爬取,使用起来非常方便。
* 链接
官方文档: http://docs.pyspider.org/
PyPl: https://pypi.python.org/pypi/pyspider
Github: https://github.com/binux/pyspider
官方教程:http://docs.pyspider.org/en/latest/tutorial
在线实列:http://demo.pyspider.org
* 准备工作
  pyspider是支持Javascript渲染的,而这个过程是依赖于PhantonJS的,所以还需要安装PhantomJS(安装见1.2.5节)
* pip安装
pip安装,命令如下:
pip3 install pyspider
* 常见错误
  Windows下可能会出现这样的错误提示:![](https://cdn.jsdelivr.net/gh/solitude93/Figure/HEXO-BLOG/Snipaste_2019-12-20_13-21-08.png)   
错误显示无效的语法,导致这种情况的原因是在更新的python3 中,已经将async 设置为关键字,而pyspider 版本更新缓慢并没有在此处修改,所以导致pyspider 不能正常启动。

解决方法:
* 打开安装Python的位置:python位置\Lib\site-packages\pyspider
比如我的安装位置:D:\ProgramData\Anaconda3\Lib\site-packages\pyspider
* 修改下列python文件中的async为shark(全部替换)
* run.py
* webui\app.py

**特别注意**: 还有一个地方就是fetcher\tornado_fetcher.py这个文件还需要需改,这个里面的async不是都需要替换,这个文件中的CurlAsyncHTTPClient含有async,不需要改。IDE打开文件![](https://cdn.jsdelivr.net/gh/solitude93/Figure/HEXO-BLOG/Snipaste_2019-12-20_13-33-49.png)

使用Ctrl+r替换run.py、webui\app.py、还有fetcher\tornado_fetcher中的asnyc   
cmd命令输入: pyspider all   
浏览器输入http://localhost:5000, 就会进入 pyspider 的WebUI管理页面,这样我们的pyspider 就安装成功了。![](https://cdn.jsdelivr.net/gh/solitude93/Figure/HEXO-BLOG/Snipaste_2019-12-20_13-40-47.png)

其他问题可以参考:
-https://blog.csdn.net/weixin_33842328/article/details/94538000
- https://blog.csdn.net/qq_42187741/article/details/90697622
- https://blog.csdn.net/weixin_41698864/article/details/89444910
- https://blog.csdn.net/qq_37438327/article/details/100943877

## 2. Scrapy
  Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted 14.0、lxml 3.4和pyOpenSSL 0.14。在不同的平台环境下,她所依赖的库也各不同,所以在安装之前,最好确保把一些基本库安装好。

* 链接
官方网站:https://scrapy.org
官方文档:https://docs.scrapy.org
PyPl: https://pypi.python.org/pypi/Scrapy
Github: https://github.com/scrapy/scrapy
中文文档:http://scrapy-chs.readthedocs.io

* Anaconda安装
  这是一种比较简单的安装Scrapy的方法,当然你的python首先必须是Anaconda安装的,这种方法简单、省力。如果已经安装了Anaconda,就可以通过conda命令安装Scrapy,命令:
conda install Scrapy

## 3. Scrapy-Splash的安装
* Scrapy-Splash是一个Scrapy中支持Javascript渲染的工具,
Scrapy-Splash的安装分为两部分。一个是Splash服务的安装,具体是通过Docker,安装之后,会启动一个Splash服务,我们通过它的接口来实现Javascript页面的加载,另一个是Scrapy-Splash的python库的安装,安装之后即可在Scrapy中使用Splash服务。

* 链接
GitHub:https://github.com/scrapy-plugins/scrapy-splash
使用说明:https://github.com/scrapy-plugins/scrapy-splash#configuration
Splash官方文档:http://splash.redthedocs.io

* 安装Splash
Scrapy-Splash会使用Splash的HTTP API进行页面渲染,所以需要安装Splash来提供渲染服务。我们需要Docker安装。
安装命令:
docker run -p 8050:8050 scrapinghub/splash
Splash已经在8050端口运行了,打开http://localhost:8050, 可以看到Splash的主页。
  Splash也可以安装在远程服务器上,在服务器上要以守护态运行Splash即可,命令:
docker run -d -p 8050:8050 scrapinghub/splash

-d参数代表将Docker容器以守护态运行,中断远程服务器连接后,不会终止Splash服务的运行   

**docker安装**:https://www.runoob.com/docker/windows-docker-install.html

* Scrapy-Splash的安装
安装python库:
pip3 install scrapy-splash
命令运行完毕后,即安装成功。

## 4. Scrapy-Redis的安装
Scrapy-Redis是Scrapy的分布式扩展模块,我们就可以方便地实现Scrapy分布式爬虫的搭建。

* 链接
GitHub:https://github.com/rmax/scrapy-redis
官方文档:http://scrapy-redis.readthedocs.io

* pip安装
命令: pip3 install scrapy-redis

* 安装测试
python命令:
```
$ python
>>> import scrapy_redis
```
没有错误报错,则安装成功

# 大部分内容参照《《Python 3网络爬虫开发实战》》

HOW2J 发表于 2020-2-24 20:09

{:1_893:}{:1_893:}{:1_893:},欢迎评论交流

CharlesGoGoGo 发表于 2020-2-24 20:19

感谢分享了

不够秀 发表于 2020-2-24 20:25

用Pycharm比较方便....直接安装了

yjn866y 发表于 2020-2-24 20:35

不错不错,努力学习中

Jack-lee 发表于 2020-2-24 20:39

支持一下

zaijiankelu 发表于 2020-2-24 20:56

alex3ander 发表于 2020-2-24 20:59

谢谢大佬的无私分享

在线小学生 发表于 2020-2-24 23:51

支持支持,学习进步

zxqatwa 发表于 2020-2-25 08:02

学习中,研究一下
页: [1] 2
查看完整版本: python爬虫笔记——框架的安装