BeautifulSoup无法通过其类找到标签

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:Ss.Sssssss@mail.com">Ss.Sssssss@mail.com</a>
         </li>
     </ul>
 </div>

我试图通过它的类获取div然后将电子邮件链接提取到电子邮件本身,如:Ss.Sssssss@mail.com

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

我已经尝试了几种获取div的方法,但它返回空列表或None

答案

您可以在div下选择所有li,它将是一个列表,因此您可以选择最后一个li元素,如[-1]

>>> soup.find("div",attrs={"class":"MPinfo"}).find_all("li")[-1].a.text
'Ss.Sssssss@mail.com'

以上是关于BeautifulSoup无法通过其类找到标签的主要内容,如果未能解决你的问题,请参考以下文章

如何从 BeautifulSoup4 中的 html 标签中找到特定的数据属性?

选择合适的标签传递给 BeautifulSoup 的 select 方法

BeautifulSoup 在 findAll 中排除标签

如何通过beautifulsoup中的“class”属性捕捉标签? [复制]

Python:通过 BeautifulSoup 搜索单个标签 [重复]

如何使用 BeautifulSoup 找到评论标签 <!--...-->?