소셜 미디어는 현대 사회에서 많은 사람들에게 정보와 연결을 제공하는 중요한 플랫폼입니다. 그러나 상용 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
은 강력한 도구로서 웹 스크레이핑에 많은 편의성을 제공합니다. 그러나 웹 스크레이핑은 해당 사이트의 이용 약관을 준수해야 하며, 데이터 사용에 관한 법적인 제약을 고려해야 합니다.