2017-09-02 3 views
1

私はwedpage内のすべてのURLを抽出し、これらのURLをすべてリストに入れようとしています。しかし、コードを実行すると、次のようなエラーメッセージが表示されます。"tag[key] returns the value of the 'key' attribute for the tag, and throws an exception if it's not there."この問題を解決する方法を知りたいですか? 私のコードは以下の通りです:URLをリストに入れられない(BeautifulSoup)

import urllib.request 
from bs4 import BeautifulSoup 

r = 'https://stackoverflow.com/' 
openedUrl = urllib.request.urlopen(r) 

soup = BeautifulSoup(openedUrl, 'lxml') 

aa = soup.find_all('a') 
href = [] 
for a in aa: 
    href.append(a['href']) 

print(href) 

答えて

1

問題はいくつかの「」タグは「HREF」属性を持っていないということですので、あなたはa['href']にアクセスしようとすると、PythonはKeyError例外がスローされます。

キーワード引数hrefTrueに設定すると、それを避けることができます。キーが存在しない場合、それはNoneを返すので、それは例外を発生しませんよう

aa = soup.find_all('a', href=True) 

タグからキーにアクセスして、それがgetメソッドを使用するのが最善の属性。

+1

これは機能します。どうもありがとうございます! – tzu

関連する問題