BeautifulSoup提取script标签.text返回空,VSCode异常Colab正常问题问询
问题原因
该异常和VSCode本身无关,是不同环境下的依赖解析行为差异导致的:
- 你本地VSCode关联的Python环境中,内置
html.parser模块、BeautifulSoup库的版本和Colab环境不一致,旧版本的html.parser处理script标签内嵌文本的逻辑和新版本不同,导致.text无法正确读取内容。 - 部分版本的BeautifulSoup中,script标签的内嵌文本存储在
.string属性中,而非.text属性,直接调用.text就会返回空字符串。
解决方法
- 优先使用
.string替代.text读取内容
直接修改取值代码即可,适配绝大多数版本的BeautifulSoup:script_content = page_html.findAll(name="script")[3].string - 更换更稳定的解析器
lxml解析器的行为在不同版本中一致性更高,先安装依赖:
再修改解析代码,修改后原pip install lxml.text写法也可正常运行:page_html = BeautifulSoup(page_connect, "lxml") - 对齐依赖版本
升级本地BeautifulSoup版本到最新稳定版,和Colab环境保持一致:pip install --upgrade beautifulsoup4
内容的提问来源于stack exchange,提问作者Nine_Gardens
相关产品推荐
相关产品推荐

