아름다운 수프는 HTML 및 XML 문서를 구문 분석하도록 설계된 파이썬 라이브러리입니다. 주어진 HTML에서 구문 분석 트리를 만들어 데이터를 쉽게 탐색, 검색 및 수정할 수 있습니다. 이를 사용하려면 먼저 PIP를 사용하여 설치해야합니다. 그런 다음 Python 스크립트로 가져와 HTML 컨텐츠를 구문 분석하는 데 사용할 수 있습니다. 기본 예는 다음과 같습니다.
<code class="python"> bs4 가져 오기 BeautifulSoup 가져 오기 요청 # html 컨텐츠 가져 오기 (URL로 교체) url = "https : //www.example.com" 응답 = requests.get (url) response.raise_for_status () # 나쁜 응답에 대한 httperror를 높이기 (4xx 또는 5xx) html_content = response.content # html soup = beautifulsoup (html_content, & quot; html.parser & quot;) # # proste to the the the the the the the the the the the the the the the the the the print to the the the that the beautifulsoup (html_content, & quot;) tag print (soup.find_all ( "p & quot;)) # 모든 단락 태그 </code>
이 코드는 먼저 요청
라이브러리를 사용하여 URL에서 html을 가져옵니다 ( pip install requests
와 별도로 설치해야합니다). 그런 다음 beautifulSoup
생성자를 사용하여 HTML 컨텐츠를 구문 분석하여 "html.parser"를 구문 분석자로 지정합니다. 마지막으로 & lt; title & gt;
태그에 액세스하고 모든 & lt; p & gt;
태그를 찾는 것을 보여줍니다. 제작 환경에서 네트워크 오류 (
아름다운 수프는 데이터를 탐색하고 추출하기위한 풍부한 방법을 제공합니다. 가장 일반적인 것은 다음과 같습니다.
find ()
및 find_all ()
: 이것은 아름다운 수프의 작업자입니다. find ()
지정된 기준과 일치하는 첫 번째 태그를 반환하는 반면 find_all ()
는 모든 일치하는 태그 목록을 반환합니다. 기준은 태그 이름 (예 : "p", "a"), 속성 (예 : "클래스": "my-class", "id": "my-id"}) 또는 두 가지 조합 일 수 있습니다. 보다 복잡한 일치에 정규 표현식을 사용할 수도 있습니다.
select ()
: soup.select ( ".my-class p & quot;)
는"my-class "클래스를 갖는 요소 내에서 모든 & lt; p & gt;
태그를 찾을 수 있습니다. HTML 요소에서 실제 텍스트를 얻는 것은 매우 중요합니다. attrs
: 이 속성은 사전으로 태그 속성에 대한 액세스를 제공합니다. 예를 들어, tag [ ""href & quot;]
는 href
& lt; a & gt;
태그의 값을 반환합니다. . <code> .next_sibling
, .previous_sibling
등. class = "python"># ... (이전 코드를 얻기위한 이전 코드) ... first_paragraph = soup.find ( "p & quot;) all_paragraphs = soup.find_all ("p & quot;) first_paragraph_text = first_paragraph.get_text () print (first _paragraph_text} & quott} & quott} & quott}. 단락 : {len (all_paragraphs)} ")} HTML은 지저분하고 일치하지 않을 수 있습니다. 변형과 잠재적 오류를 처리하려면 다음 전략을 고려하십시오.
시도에서 랩핑하십시오. 예기치 않은 데이터 유형의 경우). 변경 될 수있는 특정 클래스 이름 또는 ID에 의존하는 대신 더 일반적인 선택기 또는 속성을 사용하는 것을 고려하십시오.
AttributeError
를 피하기 위해 요소가 존재하는지 확인하십시오. 조건부 명세서 (예 : 요소 :
). Python 's strip ()
메소드 및 정규 표현식은 이것에 도움이됩니다. 오류 처리가 포함 된 예 :
try : title = soup.find ( "title & quot;). get_text (). Strip (f & quot;)를 제외하고는 Attreater : {title} & quott; 발견. ")
;) 아니요, 아름다운 수프는 JavaScript 렌더링 된 콘텐츠를 직접 처리 할 수 없습니다. 아름다운 수프는 처음에 다운로드 된 HTML과 함께 작동합니다. JavaScript를 실행하지 않습니다. JavaScript는 페이지로드 후 컨텐츠를 동적으로 렌더링하기 때문에 아름다운 수프는 초기 정적 HTML 만 볼 수 있습니다.
JavaScript 렌즈 컨텐츠를 처리하려면 대안이 필요합니다.
스크래핑 웹 사이트는 항상 웹 사이트의 robots.txt
파일 및 서비스 약관을 존중해야합니다. 과도한 스크래핑은 서버를 과부하하고 IP 주소가 차단 될 수 있습니다.
위 내용은 HTML을 구문 분석하기 위해 아름다운 수프를 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!