2017-04-10 6 views
0

「を分解する」を持っていない - 私は次のコードを実行すると、私はこのエラーを取得> http://programminghistorian.org/lessons/intro-to-beautiful-soupBSオブジェクトには、属性私はこのチュートリアルをやっている

:私ができる

AttributeError: 'NoneType' object has no attribute 'decompose'

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) 

」をなぜこのエラーが出るのか理解できません。私はsoup.p.aが何をしているのかよくわからない。それをグーグルが、何も

答えて

0

は、あなたの作業ディレクトリ内第43回-congress.htmlという名前のHTMLファイルを持っていることを確認してください...来ません。また、チュートリアルで言及されている行が必要です。あなたが得るエラーは、プログラムが作業ディレクトリ内にあるファイルの第43回-congress.htmlに「P」タグ内にネストされた「」タグを見つけることができませんでしたので、おそらくです。

soup.p.aは、あなたが(この場合はfinal_link)を標的とし、「P」タグ内にネストされている「」タグを掻き出すと割り当てられた変数にそれを渡すことができます。 decompose関数は、 "final_link"に格納されている要素を元のBeautifulSoupオブジェクト "soup"から削除します。

は、たとえば、あなたが言及したサイト上の1と非常によく似ている。この例を考えてみましょう。

<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> 

あなたの作業ディレクトリに第43回-congress.htmlとして上記のコードを保存し、コードを実行すると、あなたが

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

「P内に封入された「」タグとして出力が表示されます。 "タグは、プログラムの動作によって"スープ "オブジェクトから完全に削除されます。

+0

ありがとうございます!それはスープだった.p.a.この問題を引き起こした。私はそれが何を意味するのか分からなかった。今非常に明確です! –

関連する問題