You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建while循环持续检测列表中爬取数据变化并触发Telegram通知

修改后可增量通知的爬虫代码

核心修改逻辑

  • 新增无限循环逻辑,按设定周期轮询目标站点
  • 保留上一次爬取的全量内容列表,每次仅对比新增内容推送通知
  • 新增间隔休眠配置,避免请求频率过高触发站点反爬
  • 修复原代码中缩进错误、TG请求参数缺失问题

完整可运行代码

import time
from bs4 import BeautifulSoup
import requests
from urllib.request import Request, urlopen
from urllib.parse import quote

pages = ["movies", "series"]
# 存储上一次爬取的内容,初始化空列表
old_film_list = []
# Telegram配置 请替换为你自己的参数
TG_BOT_TOKEN = "你的Bot Token"
TG_CHAT_ID = "你的聊天ID"

while True:
    current_film_list = []
    # 爬取当前站点内容
    for page in pages:
        try:
            req = Request(f"https://www.thenetnaija.com/videos/{page}", headers={'User-Agent': 'XYZ/3.0'})
            webpage = urlopen(req, timeout=10)
            b4 = BeautifulSoup(webpage, "html.parser")
            movie_list = b4.find_all("div", {"class" : "video-files"})
            for allContainers in movie_list:
                filmName = allContainers.find('img').get('alt')
                current_film_list.append(filmName)
        except Exception as e:
            print(f"爬取{page}页面出错: {e}")
            continue
    
    # 对比获取新增内容
    added_films = [film for film in current_film_list if film not in old_film_list]
    # 有新增内容就推送TG
    if added_films:
        print(f"检测到{len(added_films)}条新增内容,开始推送")
        for film in added_films:
            # 对内容做URL编码避免特殊字符导致请求失败
            encoded_text = quote(f"新增资源更新:\n{film}")
            tg_url = f"https://api.telegram.org/bot{TG_BOT_TOKEN}/sendMessage?chat_id={TG_CHAT_ID}&text={encoded_text}"
            try:
                requests.get(tg_url, timeout=10)
                # 避免TG接口限流,加短休眠
                time.sleep(1)
            except Exception as e:
                print(f"推送{film}出错: {e}")
        # 更新旧列表为当前最新列表
        old_film_list = current_film_list.copy()
    else:
        print("本次轮询无新增内容")
    
    # 轮询间隔 这里设为30分钟 可自行修改 单位秒
    time.sleep(1800)

注意事项

  • 首次运行会将当前站点所有内容视为新增内容推送,之后仅推送更新内容
  • 可根据自身需求调整time.sleep的参数修改轮询频率,不建议设置过短
  • 可自行添加异常捕获逻辑提升程序稳定性,避免网络波动导致程序退出

内容的提问来源于stack exchange,提问作者Chigstardan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:24:02