我正在做这个教程 - > 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也在做什么。谷歌搜索但没有出现......
答案 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;通过该计划的行动来反对。