[파이썬] requests-html 사용 사례: 뉴스 기사 스크레이핑

본 블로그 포스트에서는 Python의 requests-html 라이브러리를 사용하여 뉴스 사이트에서 기사를 추출하는 방법을 알아보겠습니다. requests-htmlrequestsbeautifulsoup의 기능을 결합한 강력한 웹 스크래핑 라이브러리로, JavaScript 렌더링을 자동으로 처리할 수 있습니다.

1. requests-html 설치하기

먼저, requests-html을 설치해야 합니다. 아래 명령을 사용하여 설치할 수 있습니다.

pip install requests-html

2. 뉴스 사이트 접속하기

requests-html을 사용하여 뉴스 사이트에 접속하는 방법은 아래와 같습니다.

from requests_html import HTMLSession

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

먼저 HTMLSession 객체를 생성하고, get 메소드를 사용하여 원하는 뉴스 사이트의 주소를 전달합니다. 이렇게 하면 해당 사이트의 HTML 문서를 가져올 수 있습니다.

3. 기사 제목 추출하기

이제 가져온 HTML 문서에서 기사 제목을 추출하는 방법을 알아보겠습니다. 아래 코드를 사용하여 기사 제목을 추출할 수 있습니다.

articles = response.html.find('.article')

for article in articles:
    title = article.find('.title', first=True).text
    print(title)

HTML 문서에서 .article 클래스를 갖는 요소들을 가져옵니다. 그리고 각각의 요소에서 .title 클래스를 갖는 요소를 찾아 기사 제목을 추출합니다.

4. 기사 내용 추출하기

기사 제목을 추출하는 방법과 유사하게, 기사 내용을 추출할 수도 있습니다. 아래 코드를 사용하여 기사 내용을 추출할 수 있습니다.

articles = response.html.find('.article')

for article in articles:
    content = article.find('.content', first=True).text
    print(content)

HTML 문서에서 .article 클래스를 갖는 요소들을 가져옵니다. 그리고 각각의 요소에서 .content 클래스를 갖는 요소를 찾아 기사 내용을 추출합니다.

5. 결과 확인하기

위의 코드를 실행하면 뉴스 사이트에서 기사 제목과 내용을 추출한 결과를 확인할 수 있습니다.

이처럼 requests-html을 사용하면 Python으로 간편하게 웹 스크래핑을 할 수 있습니다. 뉴스 기사 스크레이핑 뿐만 아니라 다른 웹페이지에서 원하는 정보를 추출하고 활용할 수 있습니다. 자세한 내용은 requests-html의 공식 문서를 참조하시기 바랍니다.

Happy scraping!