gpt4 book ai didi

python - 如何提取 HTML 中元素的内容?

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

这是我使用 soup.findAll 提取的固定 html 内容

myAdds = soup.findAll("div", {"class" : "data"})

<div class="data">
<img src="/page1/page2/Images/pic.png" height="13" width="13">
&nbsp; SOME_TEXT
</img>
</div>

现在,我只想

SOME_TEXT

作为我的最终结果。我既不需要 class="data"中的标签和元素。我尝试使用替换方法,但没有成功。我怎样才能得到想要的结果?

最佳答案

您想使用Tag.next_sibling在这里,来自包含的图像标签:

>>> soup.find('div', class_='data').img.next_sibling
u'\n \xa0 SOME_TEXT\n'

在这种情况下,您的标记中似乎没有任何其他文本无论如何;您也可以使用Tag.get_text()方法:

>>> soup.find('div', class_='data').get_text()
u'\n\n \xa0 SOME_TEXT\n'

如果您的 HTML 中包含文本 <img/>标签,那么这就是损坏的 HTML,不同的解析器会以不同的方式处理这个问题:

>>> sample = '''\
... <div class="data">
... <img src="/page1/page2/Images/pic.png" height="13" width="13">
... &nbsp; SOME_TEXT
... </img>
... </div>
... '''
>>> soup = BeautifulSoup(sample, 'html.parser')
>>> soup.div
<div class="data">
<img height="13" src="/page1/page2/Images/pic.png" width="13">
  SOME_TEXT
</img>
</div>
>>> soup = BeautifulSoup(sample, 'lxml')
>>> soup.div
<div class="data">
<img height="13" src="/page1/page2/Images/pic.png" width="13"/>
  SOME_TEXT

</div>
>>> soup = BeautifulSoup(sample, 'html.parser')
>>> soup.div
<div class="data">
<img height="13" src="/page1/page2/Images/pic.png" width="13">
  SOME_TEXT
</img>
</div>

在所有这些情况下,Tag.get_text()会起作用的。

关于python - 如何提取 HTML 中元素的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23604977/

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