一种高层分布式爬行框架

Cola的Python项目详细描述


https://badge.fury.io/py/cola.svg

概述

cola是一个高级分布式爬网框架, 用于抓取网页并从网站中提取结构化数据。 它提供了简单而快速但灵活的方式来实现数据采集目标。 用户只需编写一段代码,即可在本地和分布式模式下运行。

要求

  • python2.7(稍后将支持python3+)
  • 在Linux、Windows和Mac OSX上工作

安装

快捷方式:

pip install cola

或者,下载源代码,然后运行:

python setup.py install

编写应用程序

文档将很快更新,现在只需参考 wikiweibo应用程序。

运行应用程序

对于wiki或微博应用,请确保安装依赖项,以微博为例:

pip install -r /path/to/cola/app/weibo/requirements.txt

本地模式

为了让应用程序支持本地模式,只需向入口添加代码,如下所示。

fromcola.contextimportContextctx=Context(local_mode=True)ctx.run_job(os.path.dirname(os.path.abspath(__file__)))

然后运行应用程序:

python __init__.py

通过CTRL+C停止本地作业。

分布式模式

开始主控形状:

coca master -s [ip:port]

启动一个或多个工人:

coca worker -s -m [ip:port]

然后运行应用程序(以微博为例):

coca job -u /path/to/cola/app/weibo -r

coca命令

可口可乐是一个方便的命令行工具,适用于整个可乐环境。

主人

杀死主机以停止整个群集:

coca master -k

工作

列出所有作业:

coca job -m [ip:port] -l

示例如下:

list jobs at master: 10.211.55.2:11103
====> job id: 8ZcGfAqHmzc, job description: sina weibo crawler, status: stopped

您可以运行上面列表中显示的作业:

coca job -r 8ZcGfAqHmzc

实际上,您不必输入完整的作业名称:

coca job -r 8Z

如果没有冲突,作业名的一部分就可以了。

您可以通过以下方式了解正在运行的作业的状态:

coca job -t 8Z

将输出运行期间的计数器等状态 到终点站。

您可以通过kill命令终止作业:

coca job -k 8Z

启动项目

您可以通过以下命令创建应用程序:

coca startproject colatest

记住,“帮助”命令总是有用的:

coca -h

coca master -h

捐赠

可乐是一个非营利性项目,现在由我自己维护, 因此,任何捐款都将鼓励可乐项目的进一步改进。

paypay&paypal:qinxuye@gmail.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在jetty请求日志中添加milliscond字段?   java在使用Scanner类从文件读取信息时遇到问题   为什么。类不适用于泛型类型?   SQLite插入上的java空指针异常   java能告诉我们Guava缓存是在禁用统计数据的情况下构建的吗?   java在应用程序中使用常量   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java如何在jtable中更新jprogress栏   java是比较给定日期和当前日期(在给定时区中没有时间段)的最佳方法   安卓代码中的java错误   java无法访问实体类中的字段   java如何在tomcat中处理三个JDBC连接池?   java无法使用Spring Security保护AngularJS页面   如何在没有TCP/IP协议栈的情况下用Java发送以太帧