gpt4 book ai didi

python - 如何测试美丽汤对象的类型?

转载 作者:行者123 更新时间:2023-12-01 02:05:39 26 4
gpt4 key购买 nike

这可能是一个非常基本的 Python 问题,尽管我在 Beautiful Soup 中遇到过它。

我想做的基本事情是仅从 HTML 文件中提取输出文本。

例如,在下面包含的 HTML 文件中,我只想提取 0123、abc、def 和 ghi,但不提取标签和属性。

据我所知,BS 我应该能够通过 HTML 标记的后代进行递归,并且仅包含 NavigableStrings 的内容。

问题是我不知道如何编写 if 语句来测试类型。请参阅下面的 python 代码中的注释。

有什么解决办法吗?

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>0123</title>
</head>
<body>
<div>
<p>abc</p>def
<a href="wxy.z">ghi</a>
</div>
</body>
</html>


# -*- coding: UTF-8 -*-
from bs4 import BeautifulSoup

with open('simple.html', 'r') as inf:
soup = BeautifulSoup(inf.read(), 'lxml')
for e in soup('html'):
for d in e.descendants:
print d # HERE I WANT TO SKIP EXCEPT FOR NAVIGABLE STRINGS

最佳答案

由于您正在寻找可导航字符串,因此您的条件应该是:

if isinstance(d, bs4.element.NavigableString):
print d

并且不要忘记在开始时导入 bs4

关于python - 如何测试美丽汤对象的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49105642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com