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

如何使用BeautifulSoup从ul标签中提取li标签及文本内容?

问题根因

代码未达预期有两个核心原因:

  • 发起请求时未携带浏览器标识头,被站点反爬规则拦截,返回的不是浏览器中看到的正常页面源码,自然匹配不到目标节点。
  • 你使用的html.parser解析器对该站点不规范的标签嵌套容错性差,会出现标签父子关系解析错位,导致遍历ul时漏抓内部li。
修复代码

先安装缺失依赖(如果没装的话):
pip install lxml requests beautifulsoup4

替换成如下代码运行即可:

import requests
from bs4 import BeautifulSoup as BSoup

# 构造请求头模拟普通浏览器访问,绕过基础反爬
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
}
resp = requests.get('https://solar.world.org/reuse/Aluminum.Foil', headers=headers)
# 换用容错性更强的lxml解析器,避免标签解析错位
soup = BSoup(resp.content, 'lxml')

# 用css选择器直接匹配所有ul下的li节点,避免双层遍历受解析错位影响
for item in soup.select('ul li'):
    content = item.get_text(strip=True)
    if content:
        print(content)
注意事项
  • 如果运行后返回内容还是不对,先打印resp.text查看返回源码,如果是拦截提示,可以在headers里补充Referer: https://solar.world.org/ 字段再尝试。
  • 提取文本时加strip=True是为了去掉文本前后多余的换行、空格,输出更干净。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:27:19