python BeautifulSoup搜索标签

ono*_*oxo 6 python beautifulsoup

我在这里的第一篇文章,我试图找到这个特定的HTML中的所有标签,我无法将它们取出,这是代码:

from bs4 import BeautifulSoup
from urllib import urlopen

url = "http://www.jutarnji.hr"
html_doc = urlopen(url).read()
soup = BeautifulSoup(html_doc)
soup.prettify()
soup.find_all("a", {"class":"black"})
Run Code Online (Sandbox Code Playgroud)

find函数返回[],但是我看到html中有类的标签:"black",我会错过什么吗?

谢谢,Vedran

Rik*_*ggi 2

它似乎对我有用,所以我想说问题出在你的 html 文档上。

我尝试运行以下命令:

from bs4 import BeautifulSoup

html_doc = """<html>
 <body>
  <a class="black">
   <b>
    text1
   </b>
   <c>
    text2
   </c>
  </a>
  <a class="micio">
  </a>
  <a class="black">
  </a>
 </body>
</html>"""
soup = BeautifulSoup(html_doc)
soup.prettify()
print(soup.find_all("a", {"class":"black"}))
Run Code Online (Sandbox Code Playgroud)

作为输出我得到:

[<a class="black">
<b>
    text1
   </b>
<c>
    text2
   </c>
</a>, <a class="black">
</a>]
Run Code Online (Sandbox Code Playgroud)

编辑:正如@Puneet所指出的,问题可能是您正在获取的 html 中的属性之间缺少空格。

例如,我尝试将上面的示例更改为:

html_doc = """<html>
 <body>
  <aclass="black">

# etc.. as before
Run Code Online (Sandbox Code Playgroud)

结果我得到了一个空列表:[]