2016-04-15 14 views
1

私のコードをh2とテキストを取得します。私は2つの異なるオブジェクトとして私のタイトルと私の字幕を一致させたい:BeautifulSoupクラスなし

print title 
>> My title 
print subtitle 
>> My subtitle 

何か助けがありますか?

+0

「クラス」を使用しない回答が追加されました。役に立つかもしれない。 – trans1st0r

答えて

0

クラス属性を使用せずに行う方法の1つは、

01です。
h2 = soup.find('div', id="title").h2 
subtitle = h2.span.text 
title = str(h2.contents[0]) 

h2.contents[0]NavigableStringオブジェクトを返します。印刷の動作は文字列バージョンと同じです。 printステートメントだけを使用する場合は、str()コールは必要ありません。

1

あなたは字幕を取得することができますし、それは別に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') 
関連する問題