> 백엔드 개발 > 파이썬 튜토리얼 > 클래스별로 요소를 검색할 때 BeautifulSoup에서 KeyError가 발생하는 이유는 무엇이며 어떻게 해결할 수 있나요?

클래스별로 요소를 검색할 때 BeautifulSoup에서 KeyError가 발생하는 이유는 무엇이며 어떻게 해결할 수 있나요?

Linda Hamilton
풀어 주다: 2024-12-02 05:51:14
원래의
599명이 탐색했습니다.

Why Does BeautifulSoup Throw a KeyError When Retrieving Elements by Class and How Can I Fix It?

오류 처리: BeautifulSoup을 사용하여 클래스별 요소 검색

Beautifulsoup을 사용하여 "class" 속성이 있는 HTML 요소를 구문 분석할 때 오류가 발생할 수 있음 . 이 오류는 ["class"] 구문을 사용하여 "class" 특성을 검색하려고 할 때 발생합니다. 예를 들어 아래 코드는 다음을 보여줍니다.

import BeautifulSoup
sdata = '...'
soup = BeautifulSoup(sdata)
mydivs = soup.findAll('div')
for div in mydivs:
    if (div["class"] == "stylelistrow"):
        print div
로그인 후 복사

실행 시 스크립트는 다음과 유사한 오류로 종료될 수 있습니다.

File "./beautifulcoding.py", line 130, in getlanguage
  if (div["class"] == "stylelistrow"):
File "/usr/local/lib/python2.6/dist-packages/BeautifulSoup.py", line 599, in __getitem__
   return self._getAttrMap()[key]
KeyError: 'class'
로그인 후 복사

해결책: find_all 사용

이 오류를 해결하려면 코드를 수정하여 BeautifulSoup의 find_all 메소드를 활용하여 검색을 세분화할 수 있습니다. 특정 클래스를 가진 요소의 경우. 다음 수정된 코드 조각은 이를 보여줍니다.

mydivs = soup.find_all("div", {"class": "stylelistrow"})
로그인 후 복사

find_all 메소드를 사용하고 "class" 속성을 키로, 원하는 클래스 값을 값으로 포함하는 사전을 지정하면 스크립트는 다음을 사용하여 요소를 정확하게 검색할 수 있습니다. 지정된 클래스. 이 솔루션은 오류를 효과적으로 해결하고 원하는 클래스 속성을 가진 요소 검색을 가능하게 합니다.

위 내용은 클래스별로 요소를 검색할 때 BeautifulSoup에서 KeyError가 발생하는 이유는 무엇이며 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿