2016-03-30 73 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]' 
相關問題