闲鱼自动回复机器人搭建PY简易版本

闲鱼自动回复机器人搭建PY简易版本

做闲鱼出闲置也有段时间了,最烦的就是半夜有人问 “在吗”“最低多少”,白天忙起来又漏回消息,等想起来买家早跑了。折腾了几天,终于搭好了一套能 24 小时值守的自动回复系统,不用复杂的开发环境,普通电脑或者闲置的小主机都能跑,今天把实操过程记下来,新手照着来也能搞定。
一、先说明白:这套系统能干嘛
先把边界说清楚,避免大家白忙活。这套回复系统主要解决三个问题:
买家发 “在吗”“还在吗” 这类无意义咨询,自动回复预设话术(比如 “在的亲,这款还在,参数和价格都在详情页,有具体问题直接说哦~”);
触发关键词自动应答,比如有人问 “包邮吗”“自提在哪”,直接回复提前设置的答案;
离线也能运行,不用一直开着闲鱼 App,电脑挂着脚本就能干活。
注意:咱们用的是 “模拟操作” 的轻量方案,不是破解接口,合规使用,别用来发广告、恶意回复,避免账号被限流。
二、准备工作(不用买服务器,本地就能跑
所需设备和软件
设备:任意一台能连网、可长时间开机的电脑(我用的是老电脑,E5 1650v2 的主机,挂着完全不占资源),笔记本、甚至树莓派都可以;
软件:
谷歌浏览器(必须是这个,兼容性最好);
Python 3.9(别装最新的 3.12,有些库不兼容);
文本编辑器(Notepad++ 就行,不用复杂的 IDE)。
提前做的小准备
闲鱼账号提前登录好谷歌浏览器,勾选 “记住密码”,避免脚本每次都要重新扫码;
把闲鱼的 “消息” 页面设为书签,方便脚本快速定位;
想好要自动回复的话术,比如通用回复、包邮说明、自提地址、发货时间,整理成一个文本文档备用。
三、核心步骤:一步步搭起来
第一步:安装 Python 和依赖库
安装 Python 3.9,安装时一定要勾选 “Add Python to PATH”(添加到环境变量),不然命令行识别不了;
打开电脑的 “命令提示符”(Win+R 输入 cmd 回车),依次输入以下命令,安装需要的库(输完一个等它装完再输下一个):

pip install selenium
pip install webdriver-manager
  1. 这里说明下:selenium 是用来模拟浏览器操作的,webdriver-manager 能自动匹配谷歌浏览器的驱动,不用自己手动下载,省得版本不匹配报错。

第二步:下载谷歌浏览器驱动(自动匹配,不用手动找)

不用自己去官网找驱动了,我写的脚本会自动下载。只需要确认你的谷歌浏览器是最新版本,打开浏览器,点击右上角三个点→帮助→关于谷歌浏览器,让它自动更新完成即可。

第三步:编写自动回复脚本(直接复制能用)

  1. 打开 Notepad++,新建一个文件,把下面的代码复制进去;
  2. 重点修改 “自定义配置区” 的内容,把你的话术、关键词改成自己的,这是核心;
  3. 保存文件,命名为 “xianyu_auto_reply.py”(注意后缀是.py,不是.txt),建议保存到桌面,方便查找。
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from webdriver_manager.chrome import ChromeDriverManager
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    import time
    import random
    
    # -------------------------- 自定义配置区(改这里就行) --------------------------
    # 通用回复:没人问具体问题时的默认回复
    DEFAULT_REPLY = "亲在的~ 这款宝贝还在出售,详细参数和价格都在详情页里啦,有具体问题直接说,看到就会回复哦!"
    # 关键词回复:键是买家说的关键词,值是你的回复
    KEYWORD_REPLIES = {
        "包邮吗": "非偏远地区包邮,新疆、西藏、内蒙古需要补10元运费哦~",
        "最低多少": "亲,价格已经是底价了,不议价哈,看中直接拍,当天就能发货!",
        "自提": "可以自提哦,地址在XX,自提能减20元~",
        "发货时间": "当天16点前拍下,当天发顺丰;16点后拍下,第二天上午发货~"
    }
    # 刷新消息的间隔时间(秒),建议5-10秒,别太频繁,避免被判定为异常
    CHECK_INTERVAL = 8
    # ------------------------------------------------------------------------------
    
    # 初始化浏览器
    def init_browser():
        # 配置浏览器选项,让浏览器在后台运行(不想后台运行就把下面3行注释掉)
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument("--headless=new")
        chrome_options.add_argument("--disable-gpu")
        # 自动下载并配置驱动
        service = Service(ChromeDriverManager().install())
        driver = webdriver.Chrome(service=service, options=chrome_options)
        # 最大化窗口,避免元素被遮挡
        driver.maximize_window()
        # 打开闲鱼消息页面(提前登录过的话,直接就能进入)
        driver.get("https://2.taobao.com/index.htm")
        time.sleep(3)
        # 跳转到消息中心
        driver.get("https://msg.taobao.com/")
        time.sleep(5)
        print("浏览器初始化完成,已进入闲鱼消息页面!")
        return driver
    
    # 检查新消息并回复
    def check_and_reply(driver):
        try:
            # 等待消息列表加载完成
            WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.CLASS_NAME, "msg-conversation-list"))
            )
            # 找到所有未读消息的会话(带红点的)
            unread_sessions = driver.find_elements(By.CLASS_NAME, "icon-notice")
            if not unread_sessions:
                return  # 没有未读消息,直接返回
            
            for session in unread_sessions:
                # 点击进入会话
                session.click()
                time.sleep(random.uniform(2, 3))  # 随机延迟,模拟真人操作
                
                # 找到最后一条消息(买家发的)
                messages = driver.find_elements(By.CLASS_NAME, "msg-bubble")
                if not messages:
                    continue
                last_msg = messages[-1].text.strip()
                print(f"收到买家消息:{last_msg}")
                
                # 确定回复内容
                reply_content = DEFAULT_REPLY
                for keyword, reply in KEYWORD_REPLIES.items():
                    if keyword in last_msg:
                        reply_content = reply
                        break
                
                # 定位输入框并发送消息
                input_box = WebDriverWait(driver, 5).until(
                    EC.presence_of_element_located((By.CLASS_NAME, "chat-input"))
                )
                input_box.clear()
                input_box.send_keys(reply_content)
                
                # 点击发送按钮
                send_btn = driver.find_element(By.CLASS_NAME, "send-btn")
                send_btn.click()
                print(f"已回复:{reply_content}")
                time.sleep(random.uniform(1, 2))  # 发送后延迟,避免操作过快
                
                # 返回消息列表
                driver.back()
                time.sleep(2)
        
        except Exception as e:
            print(f"操作过程中出现小问题:{e}")
            time.sleep(5)  # 出错后延迟,再继续运行
    
    # 主程序
    if __name__ == "__main__":
        driver = init_browser()
        try:
            print("自动回复系统已启动,按 Ctrl+C 停止运行!")
            while True:
                check_and_reply(driver)
                time.sleep(CHECK_INTERVAL)
        except KeyboardInterrupt:
            print("\n正在停止系统,关闭浏览器...")
            driver.quit()
            print("系统已停止!")

    第四步:启动自动回复系统

    1. 打开命令提示符,输入 “cd 桌面”(因为脚本保存在桌面),回车;
    2. 再输入 “python xianyu_auto_reply.py”,回车;
    3. 此时会看到命令行里显示 “浏览器初始化完成,已进入闲鱼消息页面”,就说明系统启动成功了;
    4. 可以用另一个闲鱼账号给自己发消息测试,比如发 “包邮吗”,过几秒就会收到自动回复。

      五、后续优化(根据自己需求加)

      1. 加 “重复消息过滤”:如果同一个买家连续发相同的消息,只回复一次,避免刷屏;
      2. 加 “订单提醒”:如果有新订单,自动回复 “已看到订单,正在打包,稍等给你发快递单号”;
      3. 开后台运行:脚本里默认是 “后台运行”,如果想看到浏览器的操作过程,把 “chrome_options.add_argument” 那两行代码注释掉就行。
       
      这套系统我已经用了快一周,每天能自动回复几十条消息,漏回的情况几乎没有,成交率也比之前高了不少。其实原理很简单,就是模拟我们手动打开浏览器、看消息、回复消息的过程,新手不用纠结代码原理,只要改改话术就能用,分享给需要的朋友。
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容