#crawler #user-agent #article #board #community #largest #ptt

bin+lib ptt-crawler

台湾最大的在线社区 PTT 网页版的爬虫

1 个不稳定版本

0.1.0 2020 年 8 月 16 日

#5 in #largest

MIT 许可证

145KB
1.5K SLoC

ptt-crawler (ptc)  Crates.io 最新版本徽章 Docs.rs 徽章 Crates.io 下载最新版本徽章 Crates.io 许可证徽章

台湾最大在线社区 PTT 网页版的爬虫。

另一个 PTT 爬虫,但用 Rust 编写。可以直接作为二进制文件使用或作为 crate。

目录

gh-md-toc 创建

功能

  • 无依赖的单个可执行文件
  • 支持跨平台
  • 爬取单个文章或一个版块中的多篇文章
  • 使用随机用户代理和代理服务器进行反反爬虫

入门

安装

ptt-crawler 的二进制文件名为 ptc。目前没有预编译的二进制文件。您需要 Rust 1.40 或更高版本,并使用 cargo 从源代码构建 ptt-crawler。

从 crates.io 安装

> cargo install ptt-crawler

从源代码安装

> git clone https://github.com/cwouyang/ptt-crawler.git
> cd ptt-crawler
> cargo build --release

使用方法

  • 爬取特定文章
> ptc url https://www.ptt.cc/bbs/Gossiping/M.1597463395.A.478.html

指定用户代理 -u 和爬取时使用的代理 -p 标志

> ptc -u "user/agent/string" -p "https://some.proxy" url https://www.ptt.cc/bbs/Gossiping/M.1597463395.A.478.html

# pass "random" to use randomly generated user agent
> ptc -u "random" https://www.ptt.cc/bbs/Gossiping/M.1597463395.A.478.html
  • 爬取页码范围内的版块文章
# From page 100 (https://www.ptt.cc/bbs/Gossiping/index100.html) to 200 (https://www.ptt.cc/bbs/Gossiping/index200.html)
> ptc board Gossiping -r 100 200

# From page 1 to latest page
> ptc board Gossiping

使用 -l 标志列出支持的版块

> ptc board Gossiping --list

作为 crate 使用

ptt-crawler 添加到 Cargo.toml 文件中的依赖项

[dependencies]
ptt-crawler = "0.1"

请参阅 文档 了解使用方法。

运行单元测试

> cargo test --all

贡献

如果您想贡献,请 Fork 仓库并使用功能分支。Pull 请求非常受欢迎。

在提交 Pull 请求之前,请确保

版本

我们使用SemVer进行版本管理。有关可用的版本,请参阅此存储库的标签

许可证

版权所有 (c) 2020 cwouyang。

本项目遵循MIT许可证条款。有关详细信息,请参阅LICENSE文件

依赖项

~24–38MB
~639K SLoC