193 个版本
0.9.7 | 2024 年 7 月 23 日 |
---|---|
0.9.3 | 2024 年 3 月 24 日 |
0.8.12 | 2023 年 10 月 28 日 |
0.8.9 | 2023 年 7 月 26 日 |
0.1.2 | 2021 年 3 月 27 日 |
1627 在 Web 编程
每月 456 次下载
29KB
494 行
捕获器
A gRPC Web 索引器,专为性能加速。
此项目能够高效地处理每秒数百万个页面。
入门
请确保已安装 Rust 或 Docker。
此项目需要您启动另一个 gRPC 服务器在端口 50051
,遵循 proto 规范。
每个捕获都使用随机代理欺骗用户代理,索引器以 spider 作为基础。
cargo run
或docker compose up
安装
您可以使用以下方法轻松安装
Cargo
该 crate 可用于在 Rust 项目中设置 gRPC 服务器。
cargo install website_crawler
Docker
您还可以使用 a11ywatch/crawler 中的 docker 镜像。
将 CRAWLER_IMAGE
环境变量设置为 darwin-arm64
以获取本机 M1 Mac 图像。
crawler:
container_name: crawler
image: "a11ywatch/crawler:${CRAWLER_IMAGE:-latest}"
ports:
- 50055
Node / Bun
我们还发布了 npm 包 @a11ywatch/crawler。
npm i @a11ywatch/crawler
在项目顶部导入后,开始 gRPC 服务器或直接运行 node。
import "@a11ywatch/crawler";
示例
这是一个基本示例,用于捕获网页,将 spider 添加到您的 Cargo.toml
[dependencies]
website_crawler = "0.9.4"
一个基本的 示例 也可以完成
一个终端运行服务器
cargo run --example server --release
另一个终端运行客户端/服务器
cargo run --example client --release
https://user-images.githubusercontent.com/8095978/221221122-cfed83aa-6ca1-4122-a1db-0d9948e9f9d9.mov
依赖项
为了在本地构建 crawler
>= 0.5.0,您需要 Protocol Buffers 编译器 protoc
,以及 Protocol Buffers 资源文件。
Ubuntu
proto 编译器需要是 v3 才能编译。Ubuntu 18+ 自动安装。
sudo apt update && sudo apt upgrade -y
sudo apt install -y protobuf-compiler libprotobuf-dev
Alpine Linux
sudo apk add protoc protobuf-dev
macOS
假设已经安装了Homebrew。 (如果没有安装,请参阅Homebrew网站上的安装说明。)
brew install protobuf
特性
jemalloc
- 使用jemalloc内存分配器(默认禁用)。regex
- 使用regex crate进行黑名单URL验证。ua_generator
- 使用ua_generator crate来伪造随机用户代理。smart
- 使用智能模式首先运行HTTP请求,当需要JS时再运行chrome。chrome
:启用chrome无头渲染,使用环境变量CHROME_URL
进行远程连接。
关于
该爬虫针对降低延迟进行了优化,并使用基于隔离的并发,因为它可以在几毫秒内处理超过10,000个页面。为了接收爬虫找到的链接,您需要将website.proto
添加到您的服务器。这是必需的,因为每个请求都会创建一个线程。隔离上下文可以显著提高性能(防止共享资源/通信)。
帮助
如果您需要帮助实现接收页面或链接的gRPC服务器,请查看gRPC节点示例作为起点。
许可证
请在项目的根目录中检查许可证文件。
依赖项
~20–38MB
~656K SLoC