2013-03-29 154 views
1

我被一個關於BeautifulSoup的python編程問題卡住了。用BeautifulSoup解析標籤

首先,我需要創建一個函數,從網頁的源頁面提取所有標記。我這樣做如下:

from bs4 import BeautifulSoup 

    soup=BeautifulSoup(''.join(data)) 

    def parseUsingSoup(content): 
     return soup.findAll('h3') 

網站我試圖解析是這個:http://www.auc.nl/news-events/events-and-lectures/events-and-lectures.html?page=1&pageSize=40

它僅包含一個H3標籤。現在這個問題需要我擴展我的功能,以便它還將返回與p標籤內相關的所有內容。它還要求提供四個元組的事件列表,列出事件的日期,標題,類型和描述。

我真的不知道該怎麼做。我嘗試了各種不同的東西,但沒有給我帶來正確的結果。先謝謝你。

回答

1

這裏有一種方法,你可以得到所有的<h3><p>標籤:

from bs4 import BeautifulSoup 
import urllib2 

content = 'http://www.auc.nl/news-events/events-and-lectures/events-and-lectures.html?page=1&pageSize=40' 

soup = BeautifulSoup(urllib2.urlopen(content)) 

for x in soup.findAll('h3'): 
    for y in soup.findAll('p'): 
     print y 

然後你就可以在您認爲合適這個輸出解析成一個列表。

+0

謝謝!這非常有幫助。是否有可能從HTML代碼中調用事件的時間(以及類型,標題等)?這樣我可以爲每個事件單獨製作字典(然後再將它們放入列表中)? – verdict

+0

是的,你似乎只需要嘗試獲取不同的標籤,直到找到合適的標籤爲止。對於評論的第二部分,可以將結果保存到變量中,然後解析該變量。有關更詳細的答案,請創建一個新問題。 – Stedy