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

Python Selenium爬取WhatsApp Web多类元素仅获17条结果求助

实现三类目标元素全量爬取的方案

你当前仅匹配了_ccCW单个类的元素,同时匹配三类目标类即可获取全部对应数据,以下是两种可行实现方式:

方式一:分别获取三类元素后合并(兼容Selenium 3.x旧版本)

# 分别获取三类类名对应的元素
elements_ccCW = driver.find_elements_by_class_name('_ccCW')
elements_FqYAR = driver.find_elements_by_class_name('FqYAR')
elements_i0jNr = driver.find_elements_by_class_name('i0jNr')

# 合并所有元素到同一个列表
all_target_elements = elements_ccCW + elements_FqYAR + elements_i0jNr

# 遍历输出所有元素文本
for ele in all_target_elements:
    print(ele.text)

方式二:CSS选择器一次性匹配(Selenium 4.x推荐,性能更高)

Selenium 4.x已废弃find_elements_by_class_name这类写法,推荐使用By类定位元素,一次性匹配三类的写法如下:
首先需要导入对应依赖:

from selenium.webdriver.common.by import By

核心爬取代码:

# CSS选择器用逗号分隔多个匹配规则,一次性命中三类元素
all_target_elements = driver.find_elements(By.CSS_SELECTOR, "._ccCW, .FqYAR, .i0jNr")

for ele in all_target_elements:
    print(ele.text)

注意事项

  • WhatsApp Web采用懒加载机制,默认仅加载当前可视区域内的元素,若需要爬取全量数据,需要先滚动聊天列表加载所有内容后再执行元素获取操作,滚动逻辑参考:
import time
# 替换为你实际确认的聊天列表容器的类名,可通过F12元素检查确认
chat_container = driver.find_element(By.CSS_SELECTOR, "._2vbn4")
last_height = driver.execute_script("return arguments[0].scrollHeight", chat_container)

while True:
    # 滚动到聊天列表底部
    driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", chat_container)
    time.sleep(2)
    new_height = driver.execute_script("return arguments[0].scrollHeight", chat_container)
    # 滚动后高度无变化说明已加载全部内容
    if new_height == last_height:
        break
    last_height = new_height

内容的提问来源于stack exchange,提问作者Developer Lachi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:54:03