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

BeautifulSoup解析Lexico词典页面返回不完整结果的问题排查

解决Lexico词典页面BeautifulSoup解析内容截断问题

你遇到的问题是用BeautifulSoup提取class为semb的<ul>标签内容时,结果只到第二个<li>中途就终止,大概率是以下两个原因导致:

1. 请求未模拟浏览器,返回内容被网站截断

很多网站会对不带浏览器标识的请求返回不完整内容,你需要给请求添加User-Agent头模拟浏览器访问:

import requests
from bs4 import BeautifulSoup

url = 'https://www.lexico.com/definition/iron'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
req = requests.get(url, headers=headers)
# 验证返回内容是否完整:将响应内容保存到本地文件查看
with open('lexico_iron.html', 'w', encoding='utf-8') as f:
    f.write(req.text)

2. lxml解析器对不规范HTML容错性差

Lexico的页面HTML可能存在未闭合标签等不规范情况,lxml解析器遇到这类问题会提前终止解析,换成Python内置的html.parser解析器即可:

soup = BeautifulSoup(req.text, 'html.parser')
semb = soup.find('ul', attrs={'class':'semb'})
print(semb)

验证步骤

  • 先执行添加请求头的代码,把响应内容保存到本地文件,打开查看semb对应的<ul>标签是否完整。如果文件里内容完整,那就是解析器的问题;如果文件里内容就截断,继续调整请求头(比如添加Accept、Referer等字段)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:15:12