[파이썬] requests-html 사용 사례: 소셜 미디어 데이터 스크레이핑

requests-html

소셜 미디어는 현대 사회에서 많은 사람들에게 정보와 연결을 제공하는 중요한 플랫폼입니다. 그러나 상용 API에 액세스하기 위해 상당한 비용이 드는 경우도 있습니다. 이 때문에 웹 스크레이핑은 소셜 미디어 데이터에 액세스하는 데 유용한 대안이 될 수 있습니다. Python의 requests-html 라이브러리는 웹 페이지를 쉽게 가져오고 파싱할 수 있는 강력한 도구입니다. 이 글에서는 requests-html을 사용하여 소셜 미디어에서 데이터를 스크레이핑하는 간단한 예제를 살펴보겠습니다.

1. requests-html 설치

먼저, requests-html을 설치해야 합니다. 아래의 커맨드를 사용하여 requests-html을 설치할 수 있습니다:

pip install requests-html

2. Facebook 게시물 스크레이핑하기

이제 requests-html을 사용하여 Facebook 게시물을 스크레이핑해 보겠습니다. 아래의 예제 코드를 참고하세요:

from requests_html import HTMLSession

session = HTMLSession()

url = "https://www.facebook.com/your-page-url"

def get_posts(url):
    response = session.get(url)
    response.html.render(sleep=1)

    posts = response.html.find('.userContentWrapper')

    for post in posts:
        time = post.find('.timestampContent')[0].text
        content = post.find('.userContent')[0].text
        print(f"Time: {time}")
        print(f"Content: {content}")
        print("-" * 50)

get_posts(url)

위의 코드에서는 HTMLSession을 사용하여 세션을 생성합니다. 그런 다음 get_posts 함수를 사용하여 Facebook 페이지의 게시물을 스크레이핑합니다. 스크레이핑한 게시물의 시간과 내용을 출력하고 있습니다.

3. Twitter 트윗 스크레이핑하기

이제 requests-html을 사용하여 Twitter 트윗을 스크레이핑해 보겠습니다. 아래의 예제 코드를 참고하세요:

from requests_html import HTMLSession

session = HTMLSession()

url = "https://twitter.com/your-handle"

def get_tweets(url):
    response = session.get(url)
    response.html.render(sleep=1)

    tweets = response.html.find('.tweet-text')

    for tweet in tweets:
        content = tweet.text
        print(f"Content: {content}")
        print("-" * 50)

get_tweets(url)

위의 코드에서는 이전과 마찬가지로 HTMLSession을 사용하여 세션을 생성하고, get_tweets 함수를 사용하여 트윗을 스크레이핑합니다. 스크레이핑한 트윗의 내용을 출력하고 있습니다.

4. 결론

이렇게 requests-html을 사용하여 소셜 미디어에서 데이터를 스크레이핑하는 방법을 알아보았습니다. requests-html은 강력한 도구로서 웹 스크레이핑에 많은 편의성을 제공합니다. 그러나 웹 스크레이핑은 해당 사이트의 이용 약관을 준수해야 하며, 데이터 사용에 관한 법적인 제약을 고려해야 합니다.