2017-12-23 2 views
0

저는 Beautifulsoup을 사용하여 학습하기 위해 웹 스크래핑을 수행하고 FOR 루프를 사용하는 반복기를 적용하여 파이썬 프로그래밍에 익숙하지 않지만 한 번만 실행한다고 생각합니다. 다음에 오류를 표시하면 다음을 시도했지만 해결할 수 없었습니다. -199.44 응용 프로그램 : -beautifulsoup을 사용한 웹 스크래핑 (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) 

아래의 출력 -

은 일상적인 응용 프로그램 [동영상] 루피에 대한 자바 알고리즘과 데이터 구조를 알아보기 아래

내 코드입니다 개발

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

고마워, 지금은 괜찮 : 감사를 많이하고있다, 나는 긴 시간에서 그것을 시도하고 있었고, 난 그것을 해결 할 수 없습니다 :) –