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

BeautifulSoup:只需进入标签内部,无论有多少个封闭标签

华化
2023-03-14
问题内容

我正在尝试<p>使用BeautifulSoup从网页中的元素中抓取所有内部html 。有内部标签,但我不在乎,我只想获取内部文本。

例如,用于:

<p>Red</p>
<p><i>Blue</i></p>
<p>Yellow</p>
<p>Light <b>green</b></p>

我如何提取:

Red
Blue
Yellow
Light green

既不.string也不.contents[0]做什么,我需要的。也没有.extract(),因为我不想事先指定内部标签-
我想处理可能发生的任何事情。

在BeautifulSoup中是否有一种“仅获取可见HTML”类型的方法?

-—更新------

根据建议,尝试:

soup = BeautifulSoup(open("test.html"))
p_tags = soup.findAll('p',text=True)
for i, p_tag in enumerate(p_tags): 
    print str(i) + p_tag

但这无济于事-它会打印出:

0Red
1

2Blue
3

4Yellow
5

6Light 
7green
8

问题答案:

简短答案: soup.findAll(text=True)

这已经在S)和BeautifulSoup文档中得到了解答。

更新:

澄清一下,一段有效的代码:

>>> txt = """\
... <p>Red</p>
... <p><i>Blue</i></p>
... <p>Yellow</p>
... <p>Light <b>green</b></p>
... """
>>> import BeautifulSoup
>>> BeautifulSoup.__version__
'3.0.7a'
>>> soup = BeautifulSoup.BeautifulSoup(txt)
>>> for node in soup.findAll('p'):
...     print ''.join(node.findAll(text=True))

Red
Blue
Yellow
Light green


 类似资料:
  • 问题内容: 我正在寻找一种使用findAll来获取两个标签的方式,按照它们在页面上出现的顺序。 目前我有: 如果我在仅带有’em’或’strong’的页面上使用该标签,则它将获得所有这些标签,如果我在同时使用这两个标签的页面上将获得’strong’标签。 有没有办法做到这一点?我主要关心的是保留标签的查找顺序。 问题答案: 您可以传递一个list,以找到任何给定的标签:

  • 问题内容: 我尝试了soup.find(’!-‘),但似乎没有用。提前致谢。 编辑:感谢您有关如何查找所有评论的提示。我有一个后续问题。如何专门搜索评论? 例如,我有以下注释标记: 我真的只想要这些东西。“ 110518”是我要用作搜索目标的日期YYMMDD。但是,我不知道如何在特定的注释标签中找到某些内容。 问题答案: Pyparsing允许您使用内置表达式搜索HTML注释,并附加解析时回调以验

  • 问题内容: 该问题特定于BeautifulSoup4,这使其与之前的问题有所不同: 为什么BeautifulSoup修改我的自闭元素? 既然不见了(以前的xml解析器),我如何才能尊重新的自动关闭标签?例如: 不会自动关闭标签,但会提示。bs4指的是这个树生成器,我如何自动关闭标签? 问题答案: 要解析XML,请将“ xml”作为第二个参数传递给BeautifulSoup构造函数。 您需要安装lx

  • 问题内容: 如何打印“我喜欢你的脸”而不是“我喜欢打你的脸” 我试过了 但它给出“ TypeError:find()不包含关键字参数” 问题答案: 您可以先删除不需要的标签,然后再获取文字。 但是它保留了所有内容,因此您需要一些工作才能删除它们。 结果 您可以跳过外部范围内的每个对象,而仅保留对象(HTML中为纯文本)。 结果

  • 问题内容: 试图让我了解BS的html构建。 我正在尝试插入新标签: 当我检查结果时,我得到: 因此,我要插入一个针对Websafe html进行了清理的字符串。 我希望看到的是: 如何在带有ID的位置3中插入新标签? 问题答案: 使用工厂方法创建新元素: 并插入:

  • comment评论标签 标签: <comment></comment> 作用:评论标签 用法示例: <comment action="get_comment" catid="$catid" id="$id"> .. HTML ..</comment> 基本参数 参数 说明 @action 调用方法(必填) @catid 栏目id(必填),列表页,内容页可以使用 $catid 获取当前栏目。 公