使用BeautifulSoup在HTML标记后获取文本

独裁者

我正在尝试解析网页以获得标题或粗体文本下方的文本。对于具有如下部分代码的网页,我希望获取在粗体标签之后但在h3标签之前的文本。

这与标签的内部文本不同。我不希望获取“教师姓名”文字,我希望获取教授的详细信息-姓名,职务,办公时间。

    ....
    <bold>Name of instructor</bold>:
    Dr. A. B. C<br />
    Professor, Dept. of Alphabet<br />
    Office hours: M, T 8:00am-10:00am<br />

    <h3>Course Name</h3>:
    Introduction to Alphabet

    <h4>Course timings</h4>
    Monday 4:00-6:00 pm
    Tuesday 5:00-6:00 pm
    ....

我正在使用BeautifulSoup来解析网页。我尝试使用.next_sibling,但它适用于具有相同名称的标签,例如,粗体表示粗体或h3至h3。.next给出下一个元素而不是下一个标签,可能是brp

如果可以补充说明,请告诉我。

迪尔伯特

我正在使用BS3。这段代码会沿nextSiblings进行迭代,直到它检测到非自闭合标签(如<br />),然后收集所有找到的NavigableStrings。

from BeautifulSoup import BeautifulStoneSoup, Tag, NavigableString

txt = \
'''
<bold>Name of instructor</bold>:
Dr. A. B. C<br />
Professor, Dept. of Alphabet<br />
Office hours: M, T 8:00am-10:00am<br />

<h3>Course Name</h3>:
Introduction to Alphabet

<h4>Course timings</h4>
Monday 4:00-6:00 pm
Tuesday 5:00-6:00 pm

'''

pool = BeautifulStoneSoup(txt, selfClosingTags=['br'])
found_txt = []
for x in pool.find("bold").nextSiblingGenerator():
    if isinstance(x, Tag) and not x.isSelfClosing:
        break
    elif isinstance(x, NavigableString):
        found_txt.append(x)
print found_txt

有了完整的HTML(我想),您将不需要使用StoneSoup,而只需使用常规汤。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在html结束标记后剪切文本

如何在使用html dom解析器PHP的特定html标记开始之前获取文本

Python:使用Beautifulsoup从html获取文本

在使用BeautifulSoup忽略格式标签的同时,如何从html获取文本?

使用HTML Agility Pack在班级中获取跨度后的文本

使用BeautifulSoup遍历标记类的html

Xpath在第一个html标记后获取文本

如何使用BeautifulSoup4获取<br>标记之前的所有文本

使用beautifulsoup和python从html页面获取文本

使用beautifulsoup获取文本。

使用BeautifulSoup抓取网站后缺少文本

BeautifulSoup从锚标记中的脚本获取文本

标记后立即获取文本

在Python中使用BeautifulSoup从HTML文本中的嵌套元素中获取文本

使用BeautifulSoup无法在</ span>标记后立即获取文本

使用beautifulsoup获取html标记内的特定字符串

获取跨度内的文本html beautifulSoup

在标记之前从HTML获取纯文本

JSOUP使用Nodes获取HTML标记之外的特定文本

使用Beautifulsoup获取正文后清洗文本字符串

使用单个类名从html标记获取文本,该html标记将包含多个类

如何使用beautifulsoup从html标记的特定类中获取数据?

Python:无法使用BeautifulSoup获取所有<span>标记中的所有文本

使用 Beautifulsoup 时如何获取文本标记

jQuery - 关闭锚标记后获取文本

在python中使用BeautifulSoup获取文本后的'href'标签

当该文本不在 <>... </> 本身内时,使用 BeautifulSoup 获取强标签后的文本

如何使用 BeautifulSoup 从这个 HTML 代码中获取文本?

使用 BeautifulSoup 从 html 获取特定文本