2017-02-20 10 views
2

美しいスープを使用して特定のテキストを取得しようとしていますが、/ strongタグの後にテキストを取得する方法がわかりません。私は探しているコンテンツを見つけましたが、特定の要素のみが必要です。美しいスープを使用した兄弟テキストノードの抽出

res = requests.get('http://www.fangraphs.com/statss.aspx?playerid=10155&position=OF') 
res.raise_for_status() 
soup = bs4.BeautifulSoup(res.text, "lxml") 
gamescore = soup.select('#content > table > tr > td > table > tr > td > div') 

出力: 生年月日: 1991年8月7日(25 Y 6 M、12 D)コウモリは/例外: R/R

は、それだけ誕生日を取得することが可能ですとR/Rのうちこれは?

答えて

3

テキストを基にして<strong>要素を選択し、隣接する兄弟ノードをnext_sibling propertyで選択できます。

​​

出力:

> print(birthday, gamescore) 
> 8/7/1991 (25 y, 6 m, 12 d) R/R 

あなたは<strong>要素とその次の兄弟ノードのそれぞれを選択したい場合は、次を使用することができます。

elements = soup.select('#content > table table div > strong') 

for element in elements: 
    print(element.text, element.next_sibling) 

出力:

> Birthdate: 8/7/1991 (25 y, 6 m, 12 d)      
> Bats/Throws: R/R      
> Height/Weight: 6-1/235      
> Position: OF 
> Contract: 
+0

これは完璧でした。ありがとう –

関連する問題