2015-04-27 30 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

相关问题