Python 使用BeautifulSoup获取元素中的实际内容
我有一些HTML,如下所示:Python 使用BeautifulSoup获取元素中的实际内容,python,beautifulsoup,Python,Beautifulsoup,我有一些HTML,如下所示: <textarea><p></textarea> 这是: 如果给Beauty Soup一个包含HTML实体的文档,比如 “lquot;”,它们将转换为Unicode字符。如果你 将文档转换为字符串时,Unicode字符将 编码为UTF-8。您将无法恢复HTML实体。默认情况下, 输出时唯一转义的字符是裸符号 和尖括号。这些将转化为&,和, 这样,漂亮的汤不会无意中生成无效的HTML或 XML 不过,您可以恢
<textarea><p></textarea>
这是:
如果给Beauty Soup一个包含HTML实体的文档,比如
“lquot;”,它们将转换为Unicode字符。如果你
将文档转换为字符串时,Unicode字符将
编码为UTF-8。您将无法恢复HTML实体。默认情况下,
输出时唯一转义的字符是裸符号
和尖括号。这些将转化为&代码>,
和
,
这样,漂亮的汤不会无意中生成无效的HTML或
XML
不过,您可以恢复实体的输出状态:
In [1]: import bs4
In [2]: doc = bs4.BeautifulSoup("<textarea><p></textarea>", "html.parser")
In [3]: textarea = doc.select_one("textarea")
In [4]: textarea.unwrap()
Out[4]: <textarea></textarea>
In [5]: print(doc)
<p>
[1]中的:导入bs4
在[2]中:doc=bs4.beautifulsou(“p”,“html.parser”)
在[3]中:textarea=doc。选择一个(“textarea”)
在[4]:textarea.unwrap()中
出[4]:
In[5]:打印(单据)
P
No。string
是标记中呈现的内容。编码是
,但实际上它意味着你想要写,我不想要呈现的内容。我知道编码是
。我正在检查用户内容是否已正确转义,
和脚本之间有很大区别!如何检索实际内容?是的,但是在
的情况下,它将不会显示在.string
属性中:然后必须迭代标记及其(标记-)子项。请参见编辑,我已尝试迭代子项。我做错了吗?是的,那是个短信孩子。如果打印type(c)
,您将看到它生成了bs4.element.NavigableString
。如果它是一个标记,比如
,那么它将是一个bs4.element.tag
。
>>> for c in doc.select("textarea")[0].children:
... print(c)
...
<p>
In [1]: import bs4
In [2]: doc = bs4.BeautifulSoup("<textarea><p></textarea>", "html.parser")
In [3]: textarea = doc.select_one("textarea")
In [4]: textarea.unwrap()
Out[4]: <textarea></textarea>
In [5]: print(doc)
<p>