오류 처리: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!