我正在尝试解析网页以获得标题或粗体文本下方的文本。对于具有如下部分代码的网页,我希望获取在粗体标签之后但在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给出下一个元素而不是下一个标签,可能是br或p
如果可以补充说明,请告诉我。
我正在使用BS3。这段代码会沿nextSibling
s进行迭代,直到它检测到非自闭合标签(如<br />
),然后收集所有找到的NavigableString
s。
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] 删除。
我来说两句