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

使用BeautifulSoup爬取网页时无法获取span标签文本如何解决

爬虫无输出问题解决方案

核心原因排查

  • 第一,目标站点的评论内容属于动态渲染内容:直接调用requests.get()只能获取页面初始静态源码,这些评论数据是页面加载完成后通过JavaScript异步请求渲染生成的,初始源码里不存在你要找的RF_CONTENT类元素,所以你遍历的activites是空列表,自然没有任何输出。
  • 第二,类名匹配错误:你给出的HTML结构中不存在代码里写的RFW_ACTIVITY_SECTION_ACTIVITY_FEED_ELEM_RESUME_ACH_NAME类的span标签,评论内容对应的span类为RFW_ACTIVITY_SECTION_ACTIVITY_FEED_ELEM_RESUME_ACTION。

修复方案

你可以使用Selenium模拟浏览器运行,等待页面动态内容加载完成后再提取数据:

前置依赖安装

执行命令安装需要的库:

pip install beautifulsoup4 requests selenium webdriver-manager

修正后的代码

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

url = "https://forum.bouyguestelecom.fr"
# 启动浏览器
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get(url)
# 等待3秒让页面动态内容加载完成,可根据网络情况调整时长
time.sleep(3)
# 获取渲染完成的页面源码
page_source = driver.page_source
driver.quit()

soup = BeautifulSoup(page_source, 'html.parser')
activites = soup.find_all('div', class_="RF_CONTENT")

for activite in activites:
    # 捕获不存在元素的异常,避免个别结构异常导致程序崩溃
    try:
        nick_name = activite.find("span", class_="RFW_ACTIVITY_SECTION_ACTIVITY_FEED_ELEM_RESUME_NICKNAME").text
        comment_content = activite.find("span", class_="RFW_ACTIVITY_SECTION_ACTIVITY_FEED_ELEM_RESUME_ACTION").text
        print(f"用户名:{nick_name}")
        print(f"评论内容:{comment_content}\n")
    except AttributeError:
        continue

额外优化建议

如果后续爬取需求增多,可以尝试抓包找到站点加载评论数据的异步接口,直接调用接口获取JSON格式数据,比模拟浏览器效率更高、稳定性更好。

内容的提问来源于stack exchange,提问作者ossama assaghir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:24:01