BeautifulSoup을 사용하여 HTML을 구문 분석할 때 함수가 예상 결과 대신 None을 반환하는 경우가 발생할 수 있습니다. . 이는 대상 HTML 요소나 속성이 문서에 없을 때 발생합니다. BeautifulSoup은 예외를 직접 발생시키지 않고 대신 후속 코드를 사용하여 이러한 None 결과를 감지하고 처리합니다.
None을 결과로 받을 수 있습니다. NoneType 객체에 속성에 액세스하거나 작업을 수행하려고 하면 예상되는 속성과 메서드가 부족하기 때문에 AttributeError 예외가 발생합니다. 이는 .find, .select_one 및 단일 결과를 반환하는 기타 함수에서 흔히 발생합니다.
문제를 설명하려면 , 질문에서 다음 예를 고려하십시오.
print(soup.sister) # Missing <sister> tag print(soup.find('a', class_='brother')) # No anchor tag with class "brother" print(soup.select_one('a.brother')) # No anchor tag with CSS class "brother"
이러한 호출은 모두 None을 반환합니다. 지정된 요소가 문서에 없습니다.
AttributeError 예외를 방지하고 강력한 코드를 보장하려면 None을 처리하는 것이 필수적입니다. 결과가 제대로 나오네요. 다음은 몇 가지 권장 사항입니다.
if soup.find('a', class_='brother'): print('Found an anchor tag with class "brother"') else: print('No anchor tag with class "brother" found')
이러한 사례를 따르면 예상치 못한 오류를 방지하고, 요소나 속성의 부재를 감지하고, 더 유용한 정보를 제공할 수 있습니다. 오류 메시지 또는 이에 따른 대체 동작.
위 내용은 BeautifulSoup이 때때로 None을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!