Home hvdb 注册检测
Post
Cancel

hvdb 注册检测

从 ???? 我记不清了 开始喜欢上 ASMR 后就接触到了音声,不过高昂的价格显然会驱使我去广袤的互联网上搜索,于是便知道了这个网站,可此网站只有登录后才可以看到更多内容,而每年也几乎是不定时开放注册,这使我很好奇这个网站

于是我便想着让服务器运行程序检测是否可以注册,然后通知

Github: yexca/hvdb

目标

检测是否可以注册,如果可以便通过 Telegram 通知

检测是否可以注册

灵梦广场的一个帖子回复中可以获知当开放注册时 login 的底下会出现 register

那便可以用一种最简朴的方法,爬取这个网页,检查是否有此单词

Bot 配置

使用 Telegram 的 bot 通知需要先注册一个 bot

对话 https://t.me/BotFather 输入 /newbot 指令按照步骤创建一个 bot

和刚创建的 bot 对话,发送 hello

然后访问 (将 TOKEN 替换为自己的 token)

1
https://api.telegram.org/botTOKEN/getUpdates

会得到一个 json 文件,找到 id,此 id 为 chat_id


参考:使用Telegram Bot来实现推送通知


Python

通过 Python 是最简单的 (我也懒得看其他语言了)

爬取使用 Requests 库,通知的话使用 pyTelegramBotAPI

多余的不解析了,直接放代码 (此文件名不要命名为 http.pyrequests.py)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import telebot
import requests
import time

# 替换自己的 token
bot = telebot.TeleBot("TOKEN", parse_mode="MARKDOWN") # You can set parse_mode by default. HTML or MARKDOWN

def inform():
    web = requests.get("https://hvdb.me/")
    str = web.text
    a = str.find("register")

    if a != -1:
        # 替换自己的 chat_id
        bot.send_message("chat_id", "[hvdb](http://hvdb.me/) register start")
        
t = 0

while True:
    inform()
    # 每小时执行一次
    time.sleep(3600)
    # 计时是否执行了 24 小时
    t += 1
    # 每天提醒一次程序在执行
    if t == 24:
        t -= 24
        local_time = time.ctime(time.time())
        inform_str = "{} 已执行".format(local_time)
        # 替换自己的 chat_id
        bot.send_message("chat_id", inform_str)


参考资料

关于报错“AttributeError:partially initialized module‘requests‘has no attribute‘get‘的解决方法

requests - 廖雪峰的官方网站

Python time sleep()方法 - 菜鸟教程

Python 日期和时间 - 菜鸟教程


Docker 封装

文件结构

1
2
3
D:\DOCKER\HVDB
    Dockerfile
    inform.py

Dockerfile 文件

1
2
3
4
5
6
FROM python:3.11-alpine
RUN pip install requests \
    && pip install pyTelegramBotAPI

COPY ./inform.py /app/inform.py
CMD [ "python", "/app/inform.py" ]

同目录下运行命令打包镜像

1
docker build -t hvdb:v1.0 .

转移到服务器

Windows 下

1
docker save -o hvdb:v1.0 hvdb.tar

等待打包完成,复制到服务器

1
scp .\hvdb.tar username@hostname:/path

复制完成后,服务器运行

1
docker load -i hvdb.tar

参考:docker load报错:Error processing tar file(exit status 1): archive/tar: invalid tar header


This post is licensed under CC BY 4.0 by the author.

备忘录模式

观察者模式