问题:漂亮的汤对象似乎从 HTML 中删除了有价值的信息。为什么要这样做,我该如何提取这个字段?
示例:我感兴趣的原始 HTML 表达了这一点:
<div id="KittyChow">
<h4 class="noteText">foodAmount</h4>
<span>< 1 tsp</span>
</div>
然而,当我创建我的汤对象时,相应的 HTML 行变为:
<div id="KittyChow"><h4 class="noteText">foodAmount</h4><span></span></div>
我的问题和疑问:为什么它删除了span和/span之间的信息?是不是因为“小于/ <”符号表示一些 HTML,所以它去掉了它?我想知道为什么会这样。我似乎无法在文档中找到解释......有没有办法在 BeautifulSoup 中解析这个?
第二:如何提取这个 < 1 tsp 参数?我尝试创建一个带有左右端点的正则表达式,并且几乎可以正常工作。如果我指定“左子字符串匹配”和“右子字符串匹配”,我知道如何使用正则表达式返回文本。例如,下面的代码将返回“cat”。
import re
string= "The cat is obese."
left= "The"
right= "is obese."
pattern= re.compile(left + "(.*?)" + right)
answer= pattern.findall(string)[0]
print answer
问题是,当我用 HTML 替换左右匹配字符串时,我得到“索引超出范围”错误,因为空格和缩进与将 HTML 转换为字符串有关。
所以你可以说...我已经做了很多研究,但我仍然坚持使用 BeautifulSoup 和 Python 的正则表达式模块在 HTML 标签的字段/属性中提取 < 和 > 符号。请帮我?:)