Skip to content

Latest commit

 

History

History
106 lines (79 loc) · 4.46 KB

自述文件.md

File metadata and controls

106 lines (79 loc) · 4.46 KB

monitor_bot

一个监控Instagram,Twitter和Weibo的机器人。

声明

这个项目仅仅是我个人的一个练习,我写这个项目也仅仅是出于我的兴趣。 这个项目只是我用来追星的(笑)。如果这让你感到麻烦,我很抱歉。

它是什么?

它是一个一个监控Instagram,Twitter和Weibo的机器人。换句话说,它是一个爬虫。 每10分钟,作为一个时间间隔,这个程序会运行以检查目标用户是否发了新的帖子或者有新的转发。如果确实有,该程序将会通过酷Q来给你的QQ发送消息。

非常感谢酷Q项目和nonebot模块。

环境

这个项目使用的Python3语言,并且于Windows操作系统上运行。 如果你使用Python2,可能会引起一些问题。 如果你使用Linux操作系统,我很遗憾地告诉你酷Q不能在Linux操作系统上运行。因此,如果你执意要在Linux上运行的话,你可能需要使用Docker。

此外,我使用了很多模块。我对这些项目很感谢。

给QQ发消息

  1. CoolQ

文档(API):https://cqhttp.cc/docs/4.13/#/

  1. NoneBot

文档:https://nonebot.cqp.moe/guide/scheduler.html

爬取Instagram

  1. instagram-scraper

爬取Twitter

  1. twitterscraper
  2. requests

爬取Weibo

  1. weibo-crawler(免cookie版)
  2. real-url

其他模块

  1. pandas
  2. numpy
  3. func_timeout
  4. retrying
  5. fake_useragent

还有很多,真的对这些项目的开发者们感到由衷地感谢!! 真的非常感谢!

如何使用

只需要克隆这个项目,然后在安装完需要的相关依赖后在cmd下进入项目目录。 使用命令:

python3 bot.py

同时,运行酷Q(exe)并且登录。 就是这样。它会每10分钟运行一次的。

如果遇到其他的问题,请自行修复。(微笑)

我累了。

项目结构

bot.py是帮助我们和酷Q客户端建立连接的通讯接口。 config.py是初始化bot.py配置的配置文件。 此外,还有一个名字叫awesome的文件夹。名字是瞎起的,请勿喷。 在awesome文件夹下,有一个用于存放用Python写的酷Q插件的文件夹,叫做plugins。打开它,我们会发现一个叫top.py的文件,它是控制插件的顶层文件。我把爬虫文件存放于crawlers文件夹中。或者更准确地说,存放于crawlers包当中了。里面有很多用Python写的插件。

项目结构可以这样表示:

CoolQ
 |_ bot.py        # 与酷Q通讯
 |_ config.py     # 配置文件
 |_ awesome
     |_ plugins
         |_ top.py      # 顶层文件
         |_ Test.py     # 这是一个空文件。只是测试用的,现在已经没用了
         |_ crawlers
             |_ __init__.py
             |_ config.json         # weibo.py的配置json文件
             |_ instagram.py
             |_ twitter.py
             |_ weibo.py
             |_ weibo-yizhibo.py    # 微博提供直播功能。这个文件可以解析直播流的真实url地址

它是如何工作的

魔法。

我只是使用了一些开源的工具来爬取数据,然后在第一次运行项目的时候将它们储存于一个文件。(我使用的是csv文件) 下次运行的时候,程序会在爬虫结束爬取工作之后将爬取的数据与csv文件里最新的一条信息进行比较。一旦在爬取的数据中发现了已存在的数据,程序将会停止比较工作并且将获取到的新信息写入csv文件的顶端。同时,程序会将信息返回给顶层文件,之后,顶层文件会将信息发送到QQ。

这就是这个项目的原理(魔法)。

项目中有大量的异常处理。我甚至对某些工具使用了超时异常处理和重试处理。 所有的和文件以及文件夹相关的操作也都足够健壮(也许吧)。

只是有一件事我不得不提。我使用的一些模块中有大量的坑和bug。我发现它们,并且修复了它们。我真的从中学到了很多。 还有,这着实花了我很长时间。

S.H.I.T

后记

我写的代码烂透了。