hvdb 註冊偵測

📢 本文由 gemini-3-flash-preview 翻譯

從 ???? 我記不清了 開始喜歡上 ASMR 後就接觸到了音聲,不過高昂的價格顯然會驅使我去廣袤的網路(Internet)上搜尋,於是便知道了這個網站,但此網站只有登入後才可以看到更多內容,而每年也幾乎是不定期開放註冊,這使我很好奇這個網站。

於是我便想著讓伺服器執行程式偵測是否可以註冊,然後發出通知。

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
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" ]

同目錄下執行命令打包映像檔(Image)

1
docker build -t hvdb:v1.0 .

轉移到伺服器

Windows 下

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

等待打包完成,複製到伺服器

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-NC-SA 4.0 by the author.
最後更新 2025-09-30 01:25 +0900