#crawler #amqp #queue #configured #applications #flatcrawl #flats

app flatcrawl-crawler

这是一个网页爬虫集合的Rust实现。新爬虫可以轻松配置,输出可以写入AMQP队列。

1个稳定版本

1.0.0 2020年1月24日

#13 in #configured

自定义许可证

44KB
1.5K SLoC

flatcrawl-crawlers

这个仓库是我的flatcrawl项目的一部分。它包含了对不同房地产网站爬虫/抓取器的Rust实现。它将定期扫描这些网站并提取关于新公寓的信息。然后,这些新公寓将被解析为一致的布局并发送进行进一步处理。

选择Rust的原因是我想学习这门语言,并且它似乎非常适合,因为它的能力如速度和线程安全性。

flatcrawl项目

项目的目的是从不同的租赁网站收集公寓并以一致的形式公开。最终,它允许用户定义自定义搜索,并提供关于新匹配公寓的即时更新。

说明:公寓不会存储在服务器上。目的不是创建一个竞争的门户网站,而是扩展可用性,并帮助用户通过从多个网站接收更新而无需设置和维护不同的搜索来快速找到合适的公寓。

基础设施

由这个工具及其爬虫集找到的公寓将通过AMQP传输到消息代理(在我的案例中是RabbitMQ),然后由不同的处理器取走。这些处理器可以在它们的自己的仓库中找到,可以是电子邮件通知到即时消息机器人等任何东西。目前只有实现了一个Telegram机器人,但你可以想象所有 kinds of different services that will listen to the queue and push new flats to interested users。

设置 & 要求

应用程序可以轻松设置,您只需将config.sample.toml复制到名为config.toml的文件中。现在您可以编辑文件中的设置。thread_count将指定将用于不同爬虫的线程数,间接地确定将创建多少个并行的TCP连接。amqp部分定义了消息代理可以找到的端点。我在我的域上简单地运行了一个现有的docker镜像,并使用了一些PLAIN身份验证。

要在您的机器上实际运行应用程序,您首先需要编译它。安装Rust非常简单,可以在他们的网站上找到说明:链接

运行

安装Rust并使用 config.toml 配置程序后,您可以通过以下方式启动它:

cargo run

首次运行时,它将下载并编译所有依赖项,这可能需要几分钟。

依赖项

~27MB
~576K SLoC