2013-09-25 32 views
5

我想使用美麗的湯來使用網站中的一些html解析幾個div塊。但是,我無法確定應該使用哪個函數來選擇這些div塊。我曾嘗試以下:使用BeautifulSoup在HTML中選擇div塊

import urllib2 
from bs4 import BeautifulSoup 

def getData(): 

    html = urllib2.urlopen("http://www.racingpost.com/horses2/results/home.sd?r_date=2013-09-22", timeout=10).read().decode('UTF-8') 

    soup = BeautifulSoup(html) 

    print(soup.title) 
    print(soup.find_all('<div class="crBlock ">')) 

getData() 

我希望能夠<div class="crBlock ">和正確的一端</div>之間進行選擇的一切。 (當然還有其他的div標籤,但我想選擇塊一路下跌到代表HTML的這一節結束的一個。)

回答

8

正確的使用將是:

soup.find_all('div', class_="crBlock ") 

通過默認情況下,美麗的湯將返回整個標籤,包括內容。如果你把它存儲在一個變量中,你可以做任何你想做的事情。如果您只查找一個div,則也可以使用find()。例如:

div = soup.find('div', class_="crBlock ") 
print(div.find_all(text='foobar')) 

查看documentation page瞭解更多關於您可以使用的所有過濾器的信息。