2016-03-30 49 views
5

这里是网页的一部分:BeautifulSoup无法通过其类找到一个标签

<div class="MPinfo"> 
    <ul class="frontList"> 
     <li>some text</li> 
     <li>some text</li> 
     <li>some text</li> 
     <li>some text</li> 
     <li>some text</li> 
     <li>some text 
      <a href="/some_local_link/8976">some text</a>; 
      <a href="/some_local_link/8943">some text</a>; 
     </li> 
     <li>E-mail: 
      <a href="mailto:[email protected]">[email protected]</a> 
     </li> 
    </ul> 
</div> 

我想通过它的类来获得的股利,然后提取电子邮件中的链接只是电子邮件本身像:[email protected]

page = urllib.urlopen(link) 
soup = BeautifulSoup(page.read()) 
print soup.find('div', attrs={'class': 'MPinfo'}) 

我尝试了好几种方式来获得的股利,但它返回空列表或无

+2

它只适用于您的示例HTML和任何3个支持的HTML解析器。也许整个HTML页面格式不正确? –

+0

我已经运行它通过W3C验证,并给我错误在255行,但例如HTML代码远高于 这是页: http://parliament.bg/bg/MP/2518 –

+1

我加载页面'r = requests.get(...)',使用'soup = BeautifulSoup(r.content,parser)'创建了一个汤,并且能够使用3个支持的解析器中的任何一个来获得没有问题的'div'。我无法重现你的问题,对不起。 –

回答

0

你可以在div下选择所有利,这将是一个列表,所以你可以选择最后的li元素[-1]

>>> soup.find("div",attrs={"class":"MPinfo"}).find_all("li")[-1].a.text 
'[email protected]' 
相关问题