python实现抖音评论实时抓取并语音播报

import time # 事件库,用于硬性等待
import threading
from bs4 import BeautifulSoup
from selenium import webdriver # 导入selenium的webdriver模块
from selenium.webdriver.chrome.service import Service

def pyttsx3_debug(text, language, rate, volume, filename, sayit=0):
# 参数说明: 六个重要参数,阅读的文字,语言(0-英文/1-中文),语速,音量(0-1),保存的文件名(以.mp3收尾),是否发言(0否1是)
import pyttsx3
engine = pyttsx3.init() # 初始化语音引擎
engine.setProperty('rate', rate) # 设置语速
# 速度调试结果:50戏剧化的慢,200正常,350用心听小说,500敷衍了事
engine.setProperty('volume', volume) # 设置音量
voices = engine.getProperty('voices') # 获取当前语音的详细信息
if int(language) == 0:
engine.setProperty('voice', voices[0].id) # 设置第一个语音合成器 #改变索引,改变声音。0中文,1英文(只有这两个选择)
elif int(language) == 1:
engine.setProperty('voice', voices[1].id)
if int(sayit) == 1:
engine.say(text) # pyttsx3->将结果念出来
elif int(sayit) == 0:
print("那我就不念了哈")
engine.save_to_file(text, filename) # 保存音频文件
print(filename, "保存成功")
engine.runAndWait() # pyttsx3结束语句(必须加)
engine.stop() # pyttsx3结束语句(必须加)

live_dy_url = 'https://live.douyin.com/930815650101' # 直播间链接
crawling_browser_dy = None # 浏览器
comment_list = [] # 评论列表

# 打开直播间浏览器

def init_crawling_browser_dy(url):
global crawling_browser_dy
service = Service('./chromedriver.exe')
options = webdriver.ChromeOptions()
# 无头模式
# options.add_argument('--headless')
options.add_experimental_option('detach', True)
# 忽略证书错误
options.add_argument('--ignore-certificate-errors')
# 忽略 Bluetooth: bluetooth_adapter_winrt.cc:1075 Getting Default Adapter failed. 错误
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 忽略 DevTools listening on ws://127.0.0.1... 提示
options.add_experimental_option('excludeSwitches', ['enable-logging'])
crawling_browser_dy = webdriver.Chrome(options=options,service=service)
crawling_browser_dy.get('https://live.douyin.com/') # 抖音直播主页
crawling_browser_dy.maximize_window() # 浏览器全屏
time.sleep(3) # 等待3s
crawling_browser_dy.get(url) # 跳转到直播间链接
threading.Timer(10, get_comment_list, args=()).start() # 执行:10s

# 获取html标签中的评论文本

def get_comment_list():
global comment_list, crawling_browser_dy
try:
content_dy = crawling_browser_dy.page_source
soup_dy = BeautifulSoup(content_dy, 'html.parser')
# 找到评论的class名称
items_dy = soup_dy.find_all(class_='webcast-chatroom___content-with-emoji-text') # 元素xpath已被篡改,代码仅供学习参考使用
for item in items_dy[-5:]: # 获取最新的5条评论
text = item.text.split(':')[1] if item.text.count(':') > 0 else item.text
comment_list.append(text)
print(comment_list) # 打印评论列表
for item in comment_list:
pyttsx3_debug(text=item, language=0, rate=200, volume=0.9, filename="ptttsx3中文测试.mp3", sayit=1)
comment_list.clear()
threading.Timer(10, get_comment_list, args=()).start() # 重复执行:10s

except:
    print('抖音自动化测试浏览器:未找到弹幕标签,请查看直播链接是否已结束或异常关闭')

init_crawling_browser_dy(live_dy_url)

posted @   龙岩龙  阅读(389)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示