[파이썬] requests-html 텍스트 데이터 추출하기

requests-html은 파이썬의 HTTP 클라이언트 라이브러리인 requests를 사용하여 웹페이지의 HTML을 가져오고, HTML 내에서 원하는 텍스트 데이터를 추출하는 기능을 제공합니다. 이를 통해 웹 스크래핑 작업을 간편하게 수행할 수 있습니다. 이번 블로그 포스트에서는 requests-html을 사용하여 텍스트 데이터를 추출하는 방법을 알아보겠습니다.

requests-html 설치하기

먼저 requests-html을 설치해야 합니다. pip를 사용하여 다음 명령을 실행해주세요:

pip install requests-html

HTML 가져오기

requests-html을 사용하여 웹페이지의 HTML을 가져오기 위해서는 requests_html 모듈을 import 해야 합니다. 아래와 같은 코드를 사용하여 HTML을 가져올 수 있습니다:

from requests_html import HTMLSession

session = HTMLSession()
response = session.get('https://www.example.com')

html = response.html

HTMLSession 클래스를 사용하여 새로운 세션을 생성하고, get 메소드를 사용하여 원하는 웹페이지의 URL을 전달합니다. 이후 html 속성을 사용하여 HTML 객체를 얻을 수 있습니다.

텍스트 데이터 추출하기

requests-html을 사용하여 텍스트 데이터를 추출하기 위해서는 HTML 객체의 text 속성을 사용합니다. 아래의 예제 코드는 웹페이지의 제목을 추출하는 방법을 보여줍니다:

title = html.find('title', first=True).text
print(title)

위의 코드에서 find 메소드는 CSS 선택자를 사용하여 HTML 요소를 찾습니다. 이 예제에서는 ‘title’ 태그를 찾아 그 텍스트 데이터를 추출하여 출력합니다.

여러 개의 HTML 요소를 찾아야 할 경우 find 메소드 대신 findall 메소드를 사용할 수 있습니다. 아래의 예제 코드는 웹페이지의 모든 단락(paragraph) 요소의 텍스트 데이터를 추출하는 방법을 보여줍니다:

paragraphs = html.findall('p')
for p in paragraphs:
    text = p.text
    print(text)

CSS 선택자를 사용하여 원하는 HTML 요소를 찾고, 해당 요소의 text 속성을 사용하여 텍스트 데이터를 추출할 수 있습니다.

결론

requests-html은 파이썬에서 텍스트 데이터 추출을 위한 강력하고 유연한 도구입니다. HTML을 가져오고, CSS 선택자를 사용하여 원하는 요소를 찾아 텍스트 데이터를 추출할 수 있습니다. 이를 통해 웹 스크래핑 작업을 효과적으로 수행할 수 있습니다.

더 자세한 내용은 requests-html 공식 문서를 참고하세요.