crawly
1,129
Stars
0
Forks
0
Watchers
0
Open Issues
未知
许可证
Elixir
语言
创建时间
最近更新
项目能做什么
基于 Elixir 的高级网页爬虫与数据抓取框架。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# Crawly
[](https://hex.pm/packages/crawly)
[](https://hexdocs.pm/crawly/)
[](https://hex.pm/packages/crawly)
[](https://github.com/elixir-crawly/crawly/blob/master/LICENSE)
[](https://github.com/elixir-crawly/crawly/commits/master)
## Overview
Crawly is an application framework for crawling web sites and
extracting structured data which can be used for a wide range of
useful applications, like data mining, information processing or
historical archival.
## Requirements
1. Elixir `~> 1.14`
2. Works on GNU/Linux, Windows, macOS X, and BSD.
## Quickstart
0. Create a new project: `mix new quickstart --sup`
1. Add Crawly as a dependencies:
```elixir
# mix.exs
defp deps do
[
{:crawly, "~> 0.17.2"},
{:floki, "~> 0.33.0"}
]
end
```
2. Fetch dependencies: `$ mix deps.get`
3. Create a spider
```elixir
# lib/crawly_example/books_to_scrape.ex
defmodule BooksToScrape do
use Crawly.Spider
@impl Crawly.Spider
def base_url(), do: "https://books.toscrape.com/"
@impl Crawly.Spider
def init() do
[start_urls: ["https://books.toscrape.com/"]]
end
@impl Crawly.Spider
def parse_item(response) do
# Parse response body to document
{:ok, document} = Floki.parse_document(response.body)
# Create item (for pages where items exists)
items =
document
|> Floki.find(".product_pod")
|> Enum.map(fn x ->
%{
title: Floki.find(x, "h3 a") |> Floki.attribute("title") |> Floki.text(),
price: Floki.find(x, ".product_price .price_color") |> Floki.text(),
url: response.request_url
}
end)
next_requests =
document
|> Floki.find(".next a")
|> Floki.attribute("href")
|> Enum.map(fn url ->
Crawly.Utils.build_absolute_url(url, response.request.url)
|> Crawly.Utils.request_from_url()
end)
%Crawly.ParsedItem{items: items, requests: next_requests}
end
end
```
**New in 0.15.0 :**
> It's possible to use the command to speed up the spider creation,
so you will have a generated file with all needed callbacks:
`mix crawly.gen.spider --filepath ./lib/crawly_example/books_to_scrape.ex --spidername BooksToScrape`
4. Configure Crawly
By default, Crawly does not require any configuration. But obviously you will need a configuration for fine tuning the crawls:
(in file: `config/config.exs`)
```elixir
import Config
config :crawly,
closespider_timeout: 10,
concurrent_requests_per_
阅读完整原文
商业机会分析 AI 生成
托管式云爬虫与调度平台 (Crawly Cloud)
| 产品构想 | 基于 Crawly 和 Elixir 分布式特性构建托管平台,用户只需上传 Spider 代码或 YAML 配置,即可执行高并发调度、自动导出数据到 S3/DB 并提供监控大盘。 |
| 核心功能 | YAML/代码爬虫在线部署、并发速率控制、任务监控与报警、自动持久化集成 (PostgreSQL/S3)、Webhook 回调 |
| 目标用户 | 缺乏分布式运维能力的团队、独立开发者、中小数据采集团队 |
| 难度/周期 | 中等 · 2-3 个月 · 成本:服务器/容器实例成本(50-200 美元/月)、前端 UI 模板 |
| 收费模式 | SaaS 订阅模式(按并发数/执行时间/抓取页面数计费,如 $29/$79/$199 月费) |
| 竞争风险 | 目标网站反爬策略导致抓取成功率下降,进而引发用户流失;基础设施调度成本管控风险 |
| 依据 | 已验证事实 |
Crawly 反爬增强与无头浏览器插件包 (Crawly Pro Plugin)
| 产品构想 | 针对现代 Web 抓取的痛点(AJAX/SPA、Cloudflare 防护),为 Crawly 开发商业版中间件插件,提供智能代理轮换、指纹伪装及无缝对接 Playwright/Puppeteer 集群的服务。 |
| 核心功能 | 代理池中间件插件、浏览器无头渲染统一中间件、请求重试与反反爬指纹注入、速率自适应调节 |
| 目标用户 | 面临严格反爬限制的 Crawly 开发者、企业数据抓取工程师 |
| 难度/周期 | 较高 · 1-2 个月 · 成本:代理测试 IP 费用(约 50-100 美元/月)、测试用 VPS |
| 收费模式 | 商业许可收费(单应用 License)或附带代理/渲染 API 调用的流量转售抽成 |
| 竞争风险 | 反爬对抗持续演进,维护成本高;代理渠道资源依赖外部提供商 |
| 依据 | 数据支持的判断 |
基于 YAML 的低代码网站监控与变更警报服务
| 产品构想 | 利用 Crawly 支持 YAML 定义 spider 的特性,打造面向非 Elixir 专业人员的轻量级竞品价格监控、网页变更告警系统。 |
| 核心功能 | 无代码/YAML 配置抓取规则、字段变化比对 (Diff Engine)、邮件/Slack/Webhook 警报通知、历史数据图表展示 |
| 目标用户 | 电商卖家、投资分析师、市场监控人员 |
| 难度/周期 | 中等 · 1.5-2 个月 · 成本:轻量云主机及数据库托管费用(约 30-80 美元/月) |
| 收费模式 | 增值订阅服务(按监控 URL 数量和检测频率收费,如 $15/月监控 50 个页面) |
| 竞争风险 | 目标网页结构变动导致规则频繁失效,需提供辅助修复机制 |
| 依据 | AI推测 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
| 项目 | 中文简介 | Stars | 语言 |
|---|---|---|---|
| JacobJandon/OnionClaw | 中文介绍暂未生成 OnionClaw™ — OpenClaw skill for full Tor dark web access: se |
96 | Python |
| elixir-crawly/crawly_ui | 中文介绍暂未生成 User interface for Crawly |
77 | Elixir |
| ilvsx/laracasts-craw | 中文介绍暂未生成 craw laracasts.com videos |
51 | PHP |
| aichat-bot/crawly | 中文介绍暂未生成 A lightweight async Web crawler in Rust, optimized for concu |
28 | Rust |
| elixir-crawly/crawly-render-server | 中文介绍暂未生成 | 14 | JavaScript |
| theritikchoure/crawlyx | 中文介绍暂未生成 Crawlyx is an open-source command-line interface (CLI) based |
13 | JavaScript |
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。
项目优势与风险
| 技术成熟度 | 创建于 ,最近推送 ,发布过 7 个 Release |
| 社区活跃 | Star 1,129 / Fork 0 / Issue 0(数据支持,可自行核实) |
| 许可证 | 未检测到(需人工确认) |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
快速开始(以仓库 README 为准)
git clone https://github.com/elixir-crawly/crawly.git cd crawly # 请阅读仓库 README 获取确切安装步骤(依赖、配置、启动命令)
术语说明:Docker=应用容器(把程序和依赖打包运行);API Key=调用外部服务的密钥;Git Clone=把仓库代码下载到本地。常见错误:API Key 未配置 / 端口占用 / 数据库连接失败,多数项目在 README 的 Troubleshooting 章节有说明。