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

如何解析提取含::marker的标签?BeautifulSoup爬取li文本遇阻

解决方法:提取含::marker伪元素的
  • 标签文本
  • 首先明确:::marker是CSS伪元素,不会出现在HTML源码里,你看到的是浏览器渲染后的效果,BeautifulSoup解析的原始HTML中根本没有这个伪元素的内容。你当前的问题核心是代码写法有误,导致未正确提取

  • 内的文本。

    修正后的代码

    from bs4 import BeautifulSoup
    import requests 
    
    url = "目标网站链接"
    page = requests.get(url)
    soup = BeautifulSoup(page.text, 'html.parser')
    
    # 找到所有<li>标签,而非仅第一个
    li_elements = soup.find_all("li")
    for li in li_elements:
        # 直接获取<li>的文本,自动清理空白字符
        print(li.get_text(strip=True))
    

    关键说明

    • soup.find("li")仅返回第一个
    • 标签,改用find_all才能获取全部列表项
    • get_text(strip=True)会自动去除文本中的换行、空格等空白内容,直接输出干净的文本
    • 你看到的::marker是浏览器通过CSS生成的(比如圆点、数字序号),原始HTML里没有这些内容。如果需要模拟marker的样式,可自行在输出时添加,示例:
      for index, li in enumerate(li_elements, start=1):
          print(f"{index}. {li.get_text(strip=True)}")  # 生成数字序号
          # 或用圆点标记
          print(f"• {li.get_text(strip=True)}")
      

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

  • 相关产品推荐
    方舟 Agent Plan

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

    最近更新时间:2026.06.24 21:00:06