#web-scraping #scraping #crawler #command-line-tool #networking #web-discovery

app coma

Coma是一个轻量级的命令行工具,用于爬取网站

3个版本

0.2.2 2024年8月6日
0.2.1 2024年8月5日
0.2.0 2024年8月3日

#473 in Web编程

Download history 376/week @ 2024-08-03 22/week @ 2024-08-10

398 每月下载量

MIT 许可证

83KB
663

Coma - 网站爬虫

概述

Coma是一个轻量级的命令行工具,用于从网页中抓取各种类型的内容,如文本、评论、链接和图像。其简单性和灵活性使用户能够轻松地从给定的URL中提取所需的数据。

Logo shrimp

安装

您可以通过在克隆存储库后本地编译它或直接从crates.io安装Coma。

本地克隆和编译

  1. 克隆仓库

    git clone https://github.com/yourusername/coma.git
    cd coma
    
  2. 使用Cargo构建项目

    cargo build --release
    
  3. 运行编译后的二进制文件

    ./target/release/coma --help
    

从crates.io安装

要从crates.io安装Coma,请使用以下命令

cargo install coma

这将下载和编译Coma,使其可以从命令行轻松使用。

程序行为

命令结构

要使用Coma,基本命令结构如下

coma [OPTIONS] --url <URL> <COMMAND>

其中 <URL> 是您要抓取的网站,而 <COMMAND> 指定您希望提取的数据类型。

命令

可用的命令使您能够针对网页上的特定内容

  • texts:从页面的HTML中提取文本。
  • comments:从HTML中提取任何评论(例如,在HTML注释标签中)。
  • links:从页面中提取所有超链接,允许您查看导航结构或相关页面。
  • images:提取页面上的图像的URL。
  • graph:发现完成后,您的浏览器将打开一个交互式拓扑图
  • help:显示帮助菜单,提供有关用法和可用选项的信息。

选项

Coma包括几个选项来定制其行为

  • -u, --url <URL>:指定开始抓取过程的URL的必选选项。

  • -d, --depth <DEPTH>:确定爬虫应从指定URL深入的程度

    • 0:仅抓取指定的URL。
    • <0:启用无限深度,允许爬虫遍历所有链接页面。
    • 默认值为 0
  • -b, --bound <BOUND>:设置过滤器以仅包含包含特定子串的URL。这可以用于限制抓取到特定域名或网站部分的页面。默认值为空字符串,表示不应用过滤。

  • -t, --thread <THREAD>:设置抓取期间的最大并发异步调用数。默认设置为 5,在速度和性能之间取得平衡,不会压倒目标服务器。

  • -h, --help:打印Coma的帮助菜单,包括使用说明和命令选项。

  • -V, --version:显示Coma的当前版本。

示例用法

为了说明Coma的工作原理,这里有一些示例命令

  1. 从单个网页中提取所有文本

    coma -u https://example.com texts
    
  2. 从网站中提取所有链接,同时允许深度为1

    coma -u https://example.com -d 1 links
    
  3. 从具有特定URL过滤器的网页中抓取图像

    coma -u https://example.com/jobs -b example.com/jobs images
    
  4. 使用网站拓扑创建网络图

    coma -u https://example.com/jobs -d 2 graph
    
  5. 显示帮助菜单

    coma help
    

未来规划

拓扑

在v0.2中引入了拓扑,但相当原始,先前目标仍然有效。

我旨在根据不同的启发式算法提供网站的完整拓扑。

  • 网站的层次结构。
  • 使用BFS(广度优先搜索)和DFS(深度优先搜索)从提供的链接中进行发现。

有几种不同的方式来表示这个图

  • 在终端中的ASCII表示。
  • 在终端中的图像渲染(覆盖各种协议,尽管不是所有终端都支持它们)。
  • 用于动态拓扑的HTML页面,类似于Neo4j提供的。

命令

我们可以在当前选项之外添加更多命令选项。

  • 表单
  • 完整的HTML页面
  • 文本中的正则表达式模式,以及一些有用的预设

选项

使用这些选项提高工具的易用性很重要

  • 不同格式的输出,拥有CSV、JSON等将很有用。
  • 代理
  • Cookie和头部

结论

Coma是一个灵活且直接的工具,适用于任何需要快速从网站上抓取数据的人。用户可以通过各种命令和选项轻松定制他们的抓取体验,使其适合广泛的网页数据提取任务。

依赖项

~22–42MB
~650K SLoC