Python을 사용하여 동적 HTML 콘텐츠 값을 추출하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-19 07:47:30
원래의
236명이 탐색했습니다.

How to Extract Dynamic HTML Content Values Using Python?

Python을 사용하여 동적 HTML 콘텐츠에서 값 검색

동적으로 로드된 콘텐츠가 있는 웹사이트에서 데이터를 추출하려고 할 때 표준 웹 스크래핑 방식은 라이브러리를 사용하는 방식입니다. urllib과 같이 제한이 발생할 수 있습니다. 이는 브라우저가 페이지의 동적 요소를 렌더링하기 위해 JavaScript 템플릿을 사용하는 경우가 많기 때문입니다. 결과적으로 이러한 템플릿은 웹 스크래핑 라이브러리에서 수신한 원시 HTML에 존재하지 않습니다.

해결책

이를 극복하기 위해 사용할 수 있는 몇 가지 옵션이 있습니다.

  • AJAX JSON을 직접 구문 분석: 이 접근 방식을 사용하려면 사용된 특정 AJAX 요청에 대한 지식이 필요하고 JSON 응답을 수동으로 구문 분석해야 합니다.
  • 오프라인 JavaScript 해석기 사용: 여기에는 SpiderMonkey 또는 Crowbar와 같은 도구를 사용하여 JavaScript 템플릿 렌더링 프로세스를 해석하고 원하는 출력을 생성하는 작업이 포함됩니다.
  • 브라우저 자동화 도구 사용: Selenium 또는 Watir와 같은 브라우저 자동화 도구 헤드리스 브라우저 인스턴스를 제어하고 동적으로 생성된 콘텐츠가 포함된 렌더링된 HTML을 검색할 수 있습니다.

Selenium 및 BeautifulSoup 사용

Selenium은 편리한 방법을 제공합니다. 웹사이트에서 렌더링된 HTML 콘텐츠를 가져오려면 BeautifulSoup을 사용하여 HTML을 효율적으로 구문 분석할 수 있습니다. 다음은 해당 웹사이트에서 작동하는 수정된 코드 조각입니다.

<code class="python">from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Firefox()
driver.get(url)

html = driver.page_source
soup = BeautifulSoup(html)

for tag in soup.find_all("span", class_="formatPrice median"):
    print(tag.text)</code>
로그인 후 복사

이 코드는 BeautifulSoup의 find_all 메소드를 사용하여 원하는 값에 해당하는 특정 CSS 클래스 이름을 검색합니다. 이 경우 클래스 이름은 formatPrice median입니다.

결론

Selenium과 같은 브라우저 자동화 도구를 사용하면 동적으로 생성된 HTML 콘텐츠에서 값을 효과적으로 검색할 수 있습니다. JavaScript 템플릿 또는 AJAX 기반 데이터 로딩과 관련된 웹 스크래핑 시나리오를 위한 강력한 솔루션입니다.

위 내용은 Python을 사용하여 동적 HTML 콘텐츠 값을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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