You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python的Selenium库获取web.whatsapp.com的全部聊天列表名称?

为什么只能获取前15个聊天名称

web.whatsapp.com的聊天列表采用*虚拟滚动(懒加载)*设计,只有滚动到可视区域内的聊天项才会被渲染到DOM树中,未滚动到的节点不会被加载,因此只能一次性获取到当前可视区域内的少量聊天名称。

完整实现方案

核心逻辑:滚动聊天列表容器,每次滚动后等待新元素加载,提取名称并去重,直到滚动到底部无新元素加载为止。

注意事项

  • 代码运行后需要手动扫码完成WhatsApp网页版登录,等待列表加载完成后才会开始执行爬取逻辑
  • WhatsApp前端类名会不定期更新,如果出现元素找不到的情况,可以通过F12开发者工具重新定位对应元素的选择器
  • 建议使用Selenium 4.x版本,旧版的find_elements_by_xxx写法已被废弃,新版统一使用find_elements(By.xxx, 选择器)语法

可运行代码示例

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

# 初始化Chrome驱动,替换为你的chromedriver路径
driver = webdriver.Chrome(service=Service("chromedriver.exe"))
driver.get('https://web.whatsapp.com/')
driver.implicitly_wait(30)

# 等待扫码登录完成,可根据自身操作速度调整等待时长
time.sleep(15)

# 存储聊天名称,用set自动去重
chat_names = set()
# 定位左侧聊天列表的滚动容器
scroll_container = driver.find_element(By.ID, "pane-side")
# 记录上一次的滚动高度,判断是否滚动到底部
last_height = driver.execute_script("return arguments[0].scrollHeight", scroll_container)

while True:
    # 提取当前可见的所有聊天名称
    name_elements = driver.find_elements(By.XPATH, "//div[@class='_3Dr46']")
    for ele in name_elements:
        if ele.text.strip():
            chat_names.add(ele.text.strip())
    
    # 滚动到列表底部
    driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", scroll_container)
    # 等待新元素加载
    time.sleep(1.5)
    
    # 计算新的滚动高度
    new_height = driver.execute_script("return arguments[0].scrollHeight", scroll_container)
    # 滚动高度没有变化,说明已经到列表底部,结束循环
    if new_height == last_height:
        # 最后再提取一次底部的元素
        name_elements = driver.find_elements(By.XPATH, "//div[@class='_3Dr46']")
        for ele in name_elements:
            if ele.text.strip():
                chat_names.add(ele.text.strip())
        break
    last_height = new_height

# 输出所有聊天名称
print(f"共获取到{len(chat_names)}个聊天名称:")
for name in chat_names:
    print(name)

driver.close()

内容的提问来源于stack exchange,提问作者Vedha Vikash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 11:30:02