PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。
PySpider带有强大的WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,它支持多种数据库后端、多种消息队列、Javascript渲染页面的爬取,使用起来非常的方便。
PySpider的基本功能:
PySpider的设计基础是:
PySpider与 Scrapy的比较:
如果想要快速方便地实现一个页面的抓取,使用 pyspider 不失为一个好的选择。如快速抓取某个普通新闻网站的新闻内容。但如果应对反爬程度很强、超大规模的抓取、推荐使用 Scrapy、如抓取封 IP、封账号、高频验证的网站的大规模数据采集。
PySpider 的架构主要分为 Scheduler(调度器)、Fetcher(抓取器)、Processer(处理器)三个部分。整个爬取过程受到 Monitor(监控器)的监控,抓取的结果被 Result Worker(结果处理器)处理。
Scheduler 发起任务调度,Fetcher 负责抓取网页内容,Processer 负责解析网页内容,然后将新生成的 Request 发给 Scheduler 进行调度,将生成的提取结果输出保存。
模块 | 功能 |
WebUI | web的可视化任务监控 web脚本编写,单步调试 异常捕获,log捕获,print捕获等 |
Scheduler | 任务优先级 周期定时任务 流量控制 基于时间周期 或 前链标签(例如更新时间)的重抓取调度 |
Fetcher | dataurl支持,用于假抓取模拟传递 method, header, cookie, proxy, etag, last_modified, timeout等抓取调度控制 通过适配类似 phantomjs 的webkit引擎支持渲染 |
Processer | 内置的pyquery,以jQuery解析页面 在脚本中完全控制调度抓取的各项参数, 向后链传递信息 异常捕获 |
PySpider 的任务执行流程的逻辑很清晰,具体过程如下所示:
PySpider的安装非常的简单,只需执行:
pip install pyspider即可,但是执行过程中可能会报如下错误:
PS C:\windows\system32> pip install pyspider Looking in indexes: http://mirrors.aliyun.com/pypi/simple/ Collecting pyspider Downloading http://mirrors.aliyun.com/pypi/packages/d0/97/d6062c928f53d899ff2a8538fed11d4d425ba3d27c96248a2c601c1c9fef/pyspider-0.3.10.tar.gz (110kB) 100% |████████████████████████████████| 112kB 178kB/s Requirement already satisfied: Flask>=0.10 in d:\python37\lib\site-packages (from pyspider) (1.0.2) Requirement already satisfied: Jinja2>=2.7 in d:\python37\lib\site-packages (from pyspider) (2.10) Requirement already satisfied: chardet>=2.2 in d:\python37\lib\site-packages (from pyspider) (3.0.4) Requirement already satisfied: cssselect>=0.9 in d:\python37\lib\site-packages (from pyspider) (1.0.3) Requirement already satisfied: lxml in d:\python37\lib\site-packages (from pyspider) (4.2.4) Collecting pycurl (from pyspider) Downloading http://mirrors.aliyun.com/pypi/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz (214kB) 100% |████████████████████████████████| 215kB 202kB/s Complete output from command python setup.py egg_info: Please specify --curl-dir=/path/to/built/libcurl ---------------------------------------- Command "python setup.py egg_info" failed with error code 10 in D:\MyConfiguration\qw\AppData\Local\Temp\pip-install-8t_d95bq\pycurl\
发生报错的原因是pycurl没有被正确安装,中间出现了编译错误,解决方案是:到 https://www.lfd.uci.edu/~gohlke/pythonlibs/
下载对应的 .whl文件,并进项安装即可。
PS E:\Download> pip install .\pycurl-7.43.1-cp37-cp37m-win_amd64.whl
安装完成后再命令行执行
pyspider打开 http://localhost:5000/ 即可访问控制台
参考链接:
The post PySpider框架简介及安装 appeared first on 标点符.
Related posts: