当前位置: 首页 > 面试题库 >

使用BeautifulSoup查找包含某些文本的HTML标签

都才俊
2023-03-14
问题内容

我正在尝试获取HTML文档中包含以下文本模式的元素:#\ S {11}

<h2> this is cool #12345678901 </h2>

因此,前者将通过使用以下内容进行匹配:

soup('h2',text=re.compile(r' #\S{11}'))

结果将是这样的:

[u'blahblah #223409823523', u'thisisinteresting #293845023984']

我可以获取所有匹配的文本(请参见上面的行)。但是我希望文本的父元素匹配,因此我可以将其用作遍历文档树的起点。在这种情况下,我希望所有h2元素都返回,而不是文本匹配。

有想法吗?


问题答案:
from BeautifulSoup import BeautifulSoup
import re

html_text = """
<h2>this is cool #12345678901</h2>
<h2>this is nothing</h2>
<h1>foo #126666678901</h1>
<h2>this is interesting #126666678901</h2>
<h2>this is blah #124445678901</h2>
"""

soup = BeautifulSoup(html_text)


for elem in soup(text=re.compile(r' #\S{11}')):
    print elem.parent

印刷品:

<h2>this is cool #12345678901</h2>
<h2>this is interesting #126666678901</h2>
<h2>this is blah #124445678901</h2>


 类似资料:
  • 我正试图用漂亮的汤刮一个汇合页的身体。当使用Confluence API时,我会得到以下正文(这只是其中的一部分): 我已经搜索了我的屁股,但不知何故,我似乎不明白如何搜索一个段落与特定的文本。 另一件我认识但不明白的事情是:当我使用:搜索所有段落时,我会找到该段落,但它包含了所有子元素的所有文本,因此段落文本如下所示:“System Status:GreenIN Operation”

  • 我想找到一个标题包含字符串的锚 这就是我所拥有的: 我需要抓住这些锚。我只知道他们的书名里有Permalink这个词。标题的其余部分各不相同。 我试过这个: 我希望得到元素,但什么也得不到。

  • 问题内容: 作为测试的一部分,该系统应该确定用于打开网站的设备是移动设备还是普通台式机。 我不断收到错误: “ InvalidSelectorError:无法使用xpath表达式// * [包含(@class,is-mobile … 萤火虫的属性: 我的测试: 有人可以告诉我正确的XPath应该是什么吗? 问题答案: 您似乎缺少右括号和右括号: 更改此: 变成这个: 附带说明一下,请考虑到此代码还

  • 问题内容: 如何使用BeautifulSoup搜索仅包含我要搜索的属性的标签? 例如,我要查找所有标签。 如下代码: 获取我想要的所有数据,还获取具有该属性的所有标签 我也试过了: 这什么也不返回(可能是由于正则表达式不好) 我想知道在BeautifulSoup中是否有一种方法可以说“查找唯一属性为”的标签 *例如,如果HTML文档包含以下标记,则为 *UPDATE : 我只希望第一个标签()返回

  • 我这里有这个html 我想检查span类是否包含值2013。我应该如何编写xpath? 这些是我到目前为止尝试过的,根据Firepath,它们要么无效,要么没有匹配的节点。

  • 问题 我正在尝试从BeautifulSoup下载的html文件中删除诸如 和之类的样式标记。我确实想保留标签包含的内容(比如文本),但这似乎不起作用。 我所尝试的 我尝试使用的URL Python HTML解析和过滤停止词 使用Python和lxml从HTML中删除class属性 BeautifulSoup标签去除