2015-04-27 63 views
0

我得到的所有我從一個HTML文件所需的文本,當我使用beautifulsoup這樣的:BeautifulSoup:從特定的類獲得通用標籤只

category = soup.find_all("ol", {"class":"breadcrumb"}) 
catname = BeautifulSoup(str(category).strip()).get_text().encode("utf-8") 

輸出:

Home 
Digital Goods 
E-Books 

但我想跳過第一個類別,即「主頁」。我知道我可以簡單地用「」替換這個詞,但我的問題實際上是關於如何獲得美麗的圖案,以獲得特定標籤,我在上面挑選的位置是

的HTML代碼如下所示:

<ol class="breadcrumb"> 
<li><a href="http://fakeshop.com">Home</a></li> 
<li><a href="http://fakeshop.com/category/51">Digital Goods</a></li> 
<li><a href="http://fakeshop.com/category/98">E-Books</a></li> 
</ol> 

有什麼我可以做這個「麪包屑」部分獲得第二和第三個「禮」的標籤,而不是別人的文件嗎?

例(其中不工作,但說明了什麼我在尋找):

category = soup.find_all("ol", {"class":"breadcrumb"}), find_all("li")[1:] 
+0

例'類別= soup.find_all( 「醇」,{ 「類」: 「麪包屑」}),find_all( 「裏」)[1:]'確實不行 ???你得到什麼輸出?這一定是工作 – Umair

+0

感謝您的評論!不,它不起作用。我得到這個錯誤:NameError:全局名稱'find_all'未定義。當我將它更改爲soup.find_all(「li」)[1:]我得到所有「li」標籤,而不僅僅是特定部分中的標籤(class:breadcrumb) – Isak

回答

2

你看這個:

category = soup.find("ol", {"class":"breadcrumb"}).findAll('li')[1:] 
catname = BeautifulSoup(str(category).strip()).get_text().encode("utf-8") 

我的輸出則是:

[Digital Goods, E-Books] 
+0

但我不知道這個有序列表是否有因爲「find」只找到第一個外觀,所以上面列出的是第一個。 – steph

+0

是的!這正是我所期待的! – Isak

相關問題