下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:1133
这些代码展示了直播间自动化发言的基本框架,但实际使用时需要注意:1) 各平台反爬机制不同 2) 频繁发送可能触发限制 3) 需要处理验证码等情况。建议仅用于学习和研究目的。
import time
import random
import pyautogui
import platform
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class LiveStreamBot:
def init(self):
self.driver = None
self.platform_config = {
'douyin': {
'input_xpath': '//textarea[@placeholder="说点什么..."]',
'send_button': '//button[contains(@class,"send-btn")]'
},
'kuaishou': {
'input_xpath': '//div[@class="comment-input"]',
'send_button': '//div[@class="send-btn"]'
}
}
def init_driver(self):
options = webdriver.ChromeOptions()
options.add_argument('--disable-notifications')
options.add_argument('--disable-infobars')
options.add_argument('--start-maximized')
self.driver = webdriver.Chrome(options=options)
def login_platform(self, platform_name, username, password):
# 实际实现需要根据各平台登录流程定制
print(f"模拟登录{platform_name}平台...")
time.sleep(2)
def send_message(self, platform_name, message, interval=5, repeat=10):
config = self.platform_config.get(platform_name)
if not config:
raise ValueError(f"不支持的平台: {platform_name}")
input_element = WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.XPATH, config['input_xpath']))
)
for i in range(repeat):
input_element.clear()
input_element.send_keys(f"{message} {i+1}")
send_button = WebDriverWait(self.driver, 10).until(
EC.element_to_be_clickable((By.XPATH, config['send_button']))
)
send_button.click()
print(f"已发送消息 {i+1}/{repeat}")
time.sleep(interval + random.uniform(0, 2))
def run(self):
try:
self.init_driver()
self.login_platform('douyin', 'your_username', 'your_password')
self.send_message('douyin', '欢迎主播!', interval=3, repeat=20)
finally:
if self.driver:
self.driver.quit()
if name == 'main':
bot = LiveStreamBot()
bot.run()
random
import jieba
import jieba.analyse
class MessageGenerator:
def init(self):
self.templates = [
"主播好棒!{emoji}",
"这个{keyword}太厉害了!",
"{nickname}加油!{emoji}",
"喜欢这个{keyword},继续继续!",
"6666 {emoji}",
"关注了,{nickname}太优秀了!"
]
self.emojis = ["❤️", "👍", "🔥", "🎉", "💯", "😍"]
def generate(self, keywords=None, nickname="主播"):
if not keywords:
keywords = ["表演", "才艺", "直播", "内容"]
template = random.choice(self.templates)
emoji = random.choice(self.emojis)
keyword = random.choice(keywords)
return template.format(
emoji=emoji,
keyword=keyword,
nickname=nickname
)
def generate_batch(self, count=10):
return [self.generate() for _ in range(count)]
if name == 'main':
generator = MessageGenerator()
print(generator.generate_batch(5))
time
import random
import pyautogui
from pynput import keyboard
class AutoTyper:
def init(self):
self.is_running = False
self.listener = None
def type_message(self, message, interval=0.1):
pyautogui.write(message, interval=interval)
pyautogui.press('enter')
def on_press(self, key):
if key == keyboard.Key.esc:
self.is_running = False
return False
def run(self, messages, delay_range=(3, 7)):
self.is_running = True
self.listener = keyboard.Listener(on_press=self.on_press)
self.listener.start()
while self.is_running:
msg = random.choice(messages)
self.type_message(msg)
time.sleep(random.uniform(*delay_range))
self.listener.stop()
if name == 'main':
typer = AutoTyper()
sample_messages = ["测试消息1", "测试消息2", "测试消息3"]
typer.run(sample_messages)