7 个版本 (重大变更)
0.6.0 | 2020年7月24日 |
---|---|
0.5.0 | 2020年7月10日 |
0.4.0 | 2020年6月13日 |
0.3.1 | 2020年2月14日 |
0.1.0 | 2019年11月6日 |
#868 in 文本处理
165KB
2K SLoC
story-dl
story-dl 是一个程序,允许您从多个不同站点下载故事。
注意
此爬虫不支持抓取人物、配对、标签、警告或其他任何所需信息之外的内容。或者至少目前还不支持。
截至 v0.5.0,story-dl 包含了 Élisabeth Henry 的 epub-builder 的修改版,但未经测试。
支持站点
- 我们的档案馆
- 粉丝小说
- (我还需要添加更多...)
依赖
- Rust (构建)
- C/C++ 编译器 (构建)
- OpenSSL (Unix/Linux 和 macOS) (运行时)
命令
用法
story-dl 尝试拥有一个简单的命令行,仅包含足够的选项来更改您所需的内容,同时足够简单,不需要20个手册页面。
示例
下载故事为 EPub
story-dl -u <URL> -o epub
下载导入文件中的所有内容为 EPub
story-dl -f import.json -o epub
导入.json
:
[
"<URL>",
{
"url": "<URL>"
}
]
库
用法
将此添加到您的 Cargo.toml
。
story_dl = { version = "0.3", default-features = false }
这将添加 story-dl,但禁用了所有命令版本所需的 crate。
选择要抓取的网站,让我们用 FanFiction
作为此示例。
// Import required structs.
use story_dl::fanfiction;
#[tokio::main]
async fn main() {
// Convert story url string into the required Uri.
let url = "<story url>".parse().expect("Not a valid URL");
// Start the scraper, this will return the finished story.
let story = fanfiction::scrape(&url).await.expect("Error scraping story");
// Scraped information
println!("Title: {}", story.name);
println!("Authors: {}", story.authors.join(", "));
println!("Chapters: {}", story.chapters);
}
鸣谢
内部使用 Gonzih 的 CrabQuery 的修改版。
感谢 Archive Of Our Own 上的 Quiet Wraith 和 FanFiction.net,他们的两篇故事 "Little Cog" 和 "Fellow Traveler" 被用作网站抓取的测试数据。
依赖
~17–28MB
~449K SLoC