2012-07-23 21 views
6

Birisi bana bir etiketin değerini BeautifulSoup kullanarak nasıl çekilebileceği konusunda yönlendirebilir mi? Belgeleri okudum, ancak gezinirken zor zamanlar geçirdim. Mesela ben, olsaydı:BeautifulSoup Kullanarak Etiket Değerini Çekme

<span title="Funstuff" class="thisClass">Fun Text</span> 

nasıl sadece BeautifulSoup/Python busing "Funstuff" çekeceği?

Düzenleme: Sen aradığınız elemanı tanımlamak için bir şey olması gerekir

+0

Bu BeautifulSoup 3 veya BeautifulSoup 4 mı? –

+0

Onun 3.2.1 ..10char – user1463925

cevap

6

versiyon 3.2.1 kullanıyorum ve o bu soruya ne olduğunu söylemek zor.

Örneğin, her ikisi de BeautifulSoup 3'teki 'Funstuff' yazdıracaktır. Bir span elemanına bakar ve başlığı alır, bir başkası verilen sınıfla ilgilenir. Bu noktaya ulaşmak için diğer birçok geçerli yol mümkündür.

import BeautifulSoup 
soup = BeautifulSoup.BeautifulSoup('<html><body><span title="Funstuff" class="thisClass">Fun Text</span></body></html>') 
print soup.html.body.span['title'] 
print soup.find('span', {"class": "thisClass"})['title'] 
+0

Soru: BeautifulSoup benim ithalat ifadesi: BeautifulSoup ithalat BeautifulSoup gelen, CData Ancak, yukarıda kodu yalnızca iş gibi görünüyor zaman: ithalat BeautifulSoup herhangi bir fikir neden? – user1463925

+0

Bu sadece Python. Göreli bir ithalat yapıyorsanız ('' BeautifulSoup import BeautifulSoup''dan sonra) 'çorba = BeautifulSoup.BeautifulSoup (…' 'çorba = BeautifulSoup (...' Bkz. Http: // docs. Daha fazla bilgi için python.org/tutorial/modules.html. –

1

Etiketlerin çocukları etiket

from bs4 import BeautifulSoup 
soup=BeautifulSoup('<span title="Funstuff" class="thisClass">Fun Text</span>') 
soup.select('.thisClass')[0].contents[0] 

http://www.crummy.com/software/BeautifulSoup/bs4/doc/#css-selectors sahiptir içeriğini

ayıklamak için kendi CSS sınıfı kullanıyor bulabilirsiniz durumda http://www.crummy.com/software/BeautifulSoup/bs4/doc/#contents-and-children .contents yoluyla ulaşılabilir tüm ayrıntıları

nevessary