많은 웹 사이트들이 데이터를 제공하고 있습니다. 웹 페이지에서 데이터를 추출하는 작업은 웹 스크래핑이라고도 알려져 있습니다. Python의 Requests-HTML 라이브러리를 사용하면 웹 페이지에서 데이터를 간단하게 추출할 수 있습니다.
Requests-HTML 설치하기
먼저, Requests-HTML을 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:
pip install requests-html
웹 페이지에서 데이터 추출하기
Requests-HTML을 사용하여 웹 페이지에서 데이터를 추출하는 방법을 알아보겠습니다. 먼저, 필요한 라이브러리를 가져와야 합니다:
from requests_html import HTMLSession
다음으로, 데이터를 추출할 웹 페이지의 URL을 지정해야 합니다:
url = "https://example.com"
HTMLSession
객체를 생성하고 해당 URL을 사용하여 웹 페이지에 접속합니다:
session = HTMLSession()
response = session.get(url)
이제 response
객체를 사용하여 웹 페이지의 데이터를 추출할 수 있습니다.
CSS 선택자를 사용하여 데이터 추출하기
Requests-HTML은 CSS 선택자를 사용하여 데이터를 추출하는 기능을 제공합니다. 웹 페이지에서 추출하고자 하는 데이터의 CSS 선택자를 알아내어 사용하면 됩니다.
예를 들어, 웹 페이지에서 제목을 추출하고 싶다면 다음과 같이 작성할 수 있습니다:
title = response.html.find('h1', first=True).text
print(title)
위 코드에서 find
메서드의 첫 번째 인자로는 추출하고자 하는 요소의 CSS 선택자를 입력하고, first=True
옵션을 사용하여 첫 번째 요소만 추출합니다. 마지막으로 text
속성을 사용하여 요소의 텍스트를 얻습니다.
동적으로 로딩되는 웹 페이지에서 데이터 추출하기
일부 웹 페이지는 JavaScript를 사용하여 동적으로 데이터를 로딩하는 경우가 있습니다. 이런 경우에는 render
메서드를 사용하여 JavaScript를 실행한 후 데이터를 추출합니다.
예를 들어, 동적으로 로딩되는 웹 페이지에서 이미지 URL을 추출한다면 다음과 같이 작성할 수 있습니다:
response.html.render()
images = response.html.find('img')
for image in images:
url = image.attrs['src']
print(url)
위 코드에서 render
메서드를 사용하여 JavaScript를 실행한 후 img
태그의 모든 이미지를 추출합니다. 각 이미지의 URL은 attrs
속성을 사용하여 얻을 수 있습니다.
요약
Python의 Requests-HTML 라이브러리를 사용하면 웹 페이지에서 데이터를 추출하는 작업을 손쉽게 수행할 수 있습니다. CSS 선택자를 사용하여 정적인 웹 페이지뿐만 아니라 동적으로 로딩되는 웹 페이지에서도 데이터를 추출할 수 있습니다. 이를 통해 웹 스크래핑 작업을 효과적으로 수행할 수 있습니다.
더 많은 정보를 원하시면 Requests-HTML 공식 문서를 참조하세요.