1
我的代码。我想匹配我的标题和我的字幕作为2个不同的对象:BeautifulSoup得到H2文字不类
print title
>> My title
print subtitle
>> My subtitle
任何帮助吗?
我的代码。我想匹配我的标题和我的字幕作为2个不同的对象:BeautifulSoup得到H2文字不类
print title
>> My title
print subtitle
>> My subtitle
任何帮助吗?
一种不使用class属性的方法是:
h2 = soup.find('div', id="title").h2
subtitle = h2.span.text
title = str(h2.contents[0])
h2.contents[0]
将在这里返回一个NavigableString
对象。它的打印行为与字符串版本相同。如果您只打算使用打印语句,则不需要拨打str()
。
你可以得到字幕和它的preceding sibling分开:
title = soup.find('div', id="title").h2
subtitle = title.find(class_="subtitle")
print(subtitle.previous_sibling.strip(), subtitle.get_text())
或者,你可以找到文本节点在非递归模式:
title = soup.find('div', id="title").h2
print(title.find(text=True, recursive=False).strip(),
title.find(class_="subtitle").get_text(strip=True))
两个打印:
(u'My title', u'My Subtitle')
添加了不使用'class'的答案。也许有帮助。 – trans1st0r