2017-12-23 12 views
0

私はPythonプログラミングには新しく、Beautifulsoupを使用して学習するためだけにWebスクレイピングを行い、FORループを使用してイテレータを適用しましたが、次回は何らかのエラーを表示していますが、試してみましたが解決できませんでした。 -199.44 アプリケーション: -beautifulsoupを使用したWebスクラブ(Forループのエラー)

from bs4 import BeautifulSoup 
from urllib.request import urlopen 

url = 'https://www.packtpub.com/all' 

page = urlopen(url) 
soup_packtpage = BeautifulSoup(page,'lxml') 
page.close() 

all_book = soup_packtpage.find_all("div",class_='book-block-outer') 

for book_title in all_book: 
    title = book_title.div['data-product-title'] 
    price = book_title.div['data-product-price'] 
    category = book_title.div['data-product-category'] 
    print(title) 
    print("Rs:-"+ price) 
    print(category) 

と以下の出力である -

が日常的応用[ビデオ] ルピーのためにJavaでアルゴリズムとデータ構造を学び以下

は私のコードです開発

Traceback (most recent call last): File "/home/bhagwatanimesh/PycharmProjects/packet_pub/packet_pub", line 17, in title = book_title.div['data-product-title'] File "/home/bhagwatanimesh/.local/lib/python3.5/site-packages/bs4/element.py", line 1011, in getitem return self.attrs[key] KeyError: 'data-product-title'

答えて

0

あなたは辞書に存在しないキーにアクセスしようとしています。 これを解決するには、以下のコードを使用してください。

for book_title in all_book: 
    try: 
     title = book_title.div['data-product-title'] 
     price = book_title.div['data-product-price'] 
     category = book_title.div['data-product-category'] 
     print(title) 
     print("Rs:-"+ price) 
     print(category) 
    except: 
     continue 
+0

おかげでたくさん、私は長い時間からそれをしようとしていたし、私はそれを解決することができませんでした、今では正常に動作している:) おかげで多くのことを:) –

関連する問題