我们知道电报上面有很多有价值的资源。
那么我们如何获取这些资源呢。
这里就推荐一个开源库,python写的。
可以对电报频道图片视频等资源进行下载。
https://github.com/tangyoha/telegram_media_downloader
这里边需要注意的就是,如果爬取的是别人的频道的话,就需要提前申请tg的appid+app_hash。
另外就是需要获取别人频道的唯一标识,是一个负数int值。
在上边的代码里边我没有找到,不过我们可以自己实现这个方法。
async def fetch_all_channels(client: pyrogram.Client):
"""获取当前账号已加入的所有频道(公开/私密)并输出信息"""
logger.info(_t("开始获取所有已加入的频道..."))
channels = []
# 获取所有对话(包括频道、群组、私聊等)
async for dialog in client.get_dialogs():
logger.info(dialog)
# 频道实体信息(包含详细属性)
# channel = dialog.chat
# # 筛选出“频道”类型的对话(排除群组、私聊等)
# if channel.is_channel:
# # 区分公开频道(有username)和私密频道(无username)
# is_public = bool(channel.username)
# channel_type = "公开频道" if is_public else "私密频道"
# # 收集频道信息
# channels.append({
# "名称": channel.title or "未知名称",
# "ID": channel.id,
# "类型": channel_type,
# "用户名": channel.username or "无(私密频道)",
# "成员数": channel.members_count or "未知"
# })
if not channels:
logger.info(_t("未找到任何已加入的频道"))
return
# # 输出频道列表(格式化展示)
# logger.success(_t(f"共找到 {len(channels)} 个频道:"))
# for i, ch in enumerate(channels, 1):
# logger.info(
# f"{i}. 名称:{ch['名称']}\n"
# f" ID:{ch['ID']}\n"
# f" 类型:{ch['类型']}\n"
# f" 用户名:{ch['用户名']}\n"
# f" 成员数:{ch['成员数']}\n"
# " -------------------------"
# )
# return channels
上边这个方法就是获取你这个手机号加入的所有频道和聊天用户的chat_id
你也可以让ai 给你生成相关代码
需要注意的就是不要爬取频繁,以免被tg封号。
评论