BS对象没有属性'分解'

时间:2017-04-10 15:14:22

标签: python-3.x beautifulsoup

我正在做这个教程 - > http://programminghistorian.org/lessons/intro-to-beautiful-soup

当我运行以下代码时,我收到此错误:

  

AttributeError:' NoneType'对象没有属性'分解'

from bs4 import BeautifulSoup

soup = BeautifulSoup (open("43rd-congress.html"))

final_link = soup.p.a
final_link.decompose()

links = soup.find_all('a')

for link in links:
    print(link)

我无法理解为什么我会收到此错误。我不确定是什么汤.p.a也在做什么。谷歌搜索但没有出现......

1 个答案:

答案 0 :(得分:1)

确保您的工作目录中有一个名为43rd-congress.html的html文件。它必须具有教程中提到的行。你得到的错误很可能是因为程序无法找到" a"嵌套在" p"中的标签标记在工作目录中的43rd-congress.html文件中。

汤.p.a让你瞄准并刮掉" a"嵌套在" p"内的标签标记并将其传递给指定的变量(在本例中为final_link)。分解函数将删除存储在" final_link"中的元素。来自最初的BeautifulSoup对象"汤"。

例如,请考虑此示例与您提到的网站上的示例非常相似。

<p align="left">
    <a href="google.com">
    <b>Search Again</b>
    </a>
</p>
<a href="facebook.com">Hello</a>
<a href="mail.yahoo.com">Yahoo</a>

当您将上述代码作为43rd-congress.html保存到工作目录并运行代码时,您将看到输出为

<a href="facebook.com">Hello</a>
<a href="mail.yahoo.com">Yahoo</a>

&#34; a&#34;标签包含在&#34; p&#34;标签已完全从&#34;汤&#34;通过该计划的行动来反对。