首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >抖音自动私信脚本,小红书快手微博私信插件,自动采集UID发送私信python版

抖音自动私信脚本,小红书快手微博私信插件,自动采集UID发送私信python版

原创
作者头像
用户11744395
发布2025-07-16 10:23:48
发布2025-07-16 10:23:48
7260
举报

下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:1133

以上代码提供了两个主要模块:自动私信工具和UID采集工具。请注意这些代码仅作为技术示例,主要还是通过python强大的框架能力调用自动化模块实现的一个自动私信的工具哈,仅供学习参考。

代码语言:txt
复制

import time
import random
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
import json
import os
import re

class SocialAutoMessenger:
    def __init__(self):
        self.config = self.load_config()
        self.driver = None
        self.platform_handlers = {
            'douyin': self.handle_douyin,
            'xiaohongshu': self.handle_xiaohongshu,
            'kuaishou': self.handle_kuaishou,
            'weibo': self.handle_weibo
        }
        
    def load_config(self):
        """加载配置文件"""
        config_path = 'config.json'
        if not os.path.exists(config_path):
            default_config = {
                "platforms": ["douyin", "xiaohongshu", "kuaishou", "weibo"],
                "message_templates": [
                    "你好,关注你很久了,很喜欢你的内容!",
                    "你的分享很有价值,希望能多多交流~",
                    "看了你的内容很有启发,期待更多精彩分享!"
                ],
                "interval": [5, 10],
                "max_messages": 100,
                "login_info": {
                    "douyin": {"username": "", "password": ""},
                    "xiaohongshu": {"username": "", "password": ""},
                    "kuaishou": {"username": "", "password": ""},
                    "weibo": {"username": "", "password": ""}
                },
                "proxy": None
            }
            with open(config_path, 'w', encoding='utf-8') as f:
                json.dump(default_config, f, indent=4, ensure_ascii=False)
            return default_config
        else:
            with open(config_path, 'r', encoding='utf-8') as f:
                return json.load(f)
    
    def init_driver(self):
        """初始化浏览器驱动"""
        chrome_options = Options()
        chrome_options.add_argument("--disable-notifications")
        chrome_options.add_argument("--disable-popup-blocking")
        chrome_options.add_argument("--disable-infobars")
        
        if self.config.get('proxy'):
            chrome_options.add_argument(f"--proxy-server={self.config['proxy']}")
            
        self.driver = webdriver.Chrome(options=chrome_options)
        self.driver.maximize_window()
    
    def login(self, platform):
        """平台登录"""
        login_info = self.config['login_info'].get(platform)
        if not login_info or not login_info['username'] or not login_info['password']:
            print(f"请先在config.json中配置{platform}的登录信息")
            return False
            
        if platform == 'douyin':
            self.driver.get("https://www.douyin.com/")
            time.sleep(5)
            # 抖音登录逻辑...
            
        elif platform == 'xiaohongshu':
            self.driver.get("https://www.xiaohongshu.com/")
            time.sleep(3)
            # 小红书登录逻辑...
            
        elif platform == 'kuaishou':
            self.driver.get("https://www.kuaishou.com/")
            time.sleep(3)
            # 快手登录逻辑...
            
        elif platform == 'weibo':
            self.driver.get("https://weibo.com/")
            time.sleep(3)
            # 微博登录逻辑...
            
        return True
    
    def handle_douyin(self):
        """处理抖音私信"""
        print("开始处理抖音私信...")
        if not self.login('douyin'):
            return
            
        # 抖音私信逻辑...
        # 这里应该有详细的页面元素定位和交互代码
        # 包括获取用户列表、发送消息等
        
    def handle_xiaohongshu(self):
        """处理小红书私信"""
        print("开始处理小红书私信...")
        if not self.login('xiaohongshu'):
            return
            
        # 小红书私信逻辑...
        
    def handle_kuaishou(self):
        """处理快手私信"""
        print("开始处理快手私信...")
        if not self.login('kuaishou'):
            return
            
        # 快手私信逻辑...
        
    def handle_weibo(self):
        """处理微博私信"""
        print("开始处理微博私信...")
        if not self.login('weibo'):
            return
            
        # 微博私信逻辑...
        
    def get_random_message(self):
        """获取随机消息模板"""
        return random.choice(self.config['message_templates'])
    
    def get_random_interval(self):
        """获取随机间隔时间"""
        min_val, max_val = self.config['interval']
        return random.uniform(min_val, max_val)
    
    def run(self):
        """运行主程序"""
        try:
            self.init_driver()
            
            for platform in self.config['platforms']:
                if platform in self.platform_handlers:
                    handler = self.platform_handlers[platform]
                    handler()
                    time.sleep(self.get_random_interval())
                    
        except Exception as e:
            print(f"发生错误: {str(e)}")
        finally:
            if self.driver:
                self.driver.quit()
            print("程序运行结束")

if __name__ == "__main__":
    messenger = SocialAutoMessenger()
    messenger.run()
 requests
from bs4 import BeautifulSoup
import re
import json
import time
import random
from concurrent.futures import ThreadPoolExecutor

class UIDCollector:
    def __init__(self):
        self.config = self.load_config()
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
        }
        self.proxy = self.config.get('proxy')
        
    def load_config(self):
        """加载配置文件"""
        config_path = 'collector_config.json'
        if not os.path.exists(config_path):
            default_config = {
                "keywords": ["美食", "旅游", "科技"],
                "max_pages": 10,
                "output_file": "uids.json",
                "platforms": ["douyin", "xiaohongshu", "kuaishou", "weibo"],
                "proxy": None
            }
            with open(config_path, 'w', encoding='utf-8') as f:
                json.dump(default_config, f, indent=4, ensure_ascii=False)
            return default_config
        else:
            with open(config_path, 'r', encoding='utf-8') as f:
                return json.load(f)
    
    def collect_douyin_uids(self, keyword):
        """采集抖音UID"""
        print(f"开始采集抖音关键词'{keyword}'相关UID...")
        uids = []
        base_url = f"https://www.douyin.com/search/{keyword}"
        
        # 这里应该有详细的采集逻辑
        # 包括模拟滚动、解析页面、提取UID等
        
        return uids
    
    def collect_xiaohongshu_uids(self, keyword):
        """采集小红书UID"""
        print(f"开始采集小红书关键词'{keyword}'相关UID...")
        uids = []
        base_url = f"https://www.xiaohongshu.com/search_result/{keyword}"
        
        # 小红书采集逻辑...
        
        return uids
    
    def collect_kuaishou_uids(self, keyword):
        """采集快手UID"""
        print(f"开始采集快手关键词'{keyword}'相关UID...")
        uids = []
        base_url = f"https://www.kuaishou.com/search/video?searchKey={keyword}"
        
        # 快手采集逻辑...
        
        return uids
    
    def collect_weibo_uids(self, keyword):
        """采集微博UID"""
        print(f"开始采集微博关键词'{keyword}'相关UID...")
        uids = []
        base_url = f"https://s.weibo.com/weibo/{keyword}"
        
        # 微博采集逻辑...
        
        return uids
    
    def save_uids(self, uids):
        """保存采集到的UID"""
        with open(self.config['output_file'], 'w', encoding='utf-8') as f:
            json.dump(uids, f, indent=4, ensure_ascii=False)
        print(f"已保存{len(uids)}个UID到{self.config['output_file']}")
    
    def run(self):
        """运行采集程序"""
        all_uids = []
        
        with ThreadPoolExecutor(max_workers=4) as executor:
            futures = []
            for keyword in self.config['keywords']:
                for platform in self.config['platforms']:
                    if platform == 'douyin':
                        futures.append(executor.submit(self.collect_douyin_uids, keyword))
                    elif platform == 'xiaohongshu':
                        futures.append(executor.submit(self.collect_xiaohongshu_uids, keyword))
                    elif platform == 'kuaishou':
                        futures.append(executor.submit(self.collect_kuaishou_uids, keyword))
                    elif platform == 'weibo':
                        futures.append(executor.submit(self.collect_weibo_uids, keyword))
            
            for future in futures:
                try:
                    uids = future.result()
                    all_uids.extend(uids)
                except Exception as e:
                    print(f"采集过程中发生错误: {str(e)}")
        
        # 去重
        unique_uids = list({uid['platform']+uid['id']: uid for uid in all_uids}.values())
        self.save_uids(unique_uids)

if __name__ == "__main__":
    collector = UIDCollector()
    collector.run()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档