Coding Memo

Twitter Crawling (tweepy) 본문

Language/Python

Twitter Crawling (tweepy)

minttea25 2021. 2. 24. 20:35

트위터 크롤링 방법

 

1. 트위터 계정 필요 (개발자 인증 따로 필요)

developer.twitter.com/en

 

Use Cases, Tutorials, & Documentation

Publish & analyze Tweets, optimize ads, & create unique customer experiences with the Twitter API, Twitter Ads API, & Twitter for Websites. Let's start building.

developer.twitter.com

이것저것 작성할 것들이 있다. 핸드폰 번호 인증이 필요한 것 같고 개발자 계정을 어떻게 사용할 건지 간단하게 영어로 표기하면 된다.

 

2. 그 계정으로 부터 API Key(Consumer key), API secret key(Consumer secret), Bearer token, Access token, Access token secret을 얻을 수 있다. (이 key와 token들은 개인적으로 따로 저장해두자.)

 

3. tweepy를 import해서 사용

docs.tweepy.org/ko/latest/index.html

 

Tweepy 기술 문서 — tweepy 3.10.0 documentation

© Copyright 2009-2021, Joshua Roesslein Revision 5b2dd086.

docs.tweepy.org

여기 자세히 나와있다.

 

예시로 search 기능을 보겠다.

간단하게 @uruharushia를 검색해서 나온 결과를 RT를 제외한 트윗을 10개 단위로 찾고 파일에 쓰는 코드이다.

import tweepy as tw

auth = tw.OAuthHandler(
    "***"
    )
auth.set_access_token(
    "***",
    "***",
    )

api = tw.API(auth)

file = open('twtest.txt', "w")

for tweet in tw.Cursor(
    api.search,  
    q="rushia", 
    lang="en", 
    include_entities=False,
    count=10
    ).items():
    t = tweet.text
    if "RT" not in t:
        if "@uruharushia" not in t:
            print(t)
            file.write(t)
            file.flush()

 

예시2로 해당 유저의 타임라인 가져오기

for tweet in tw.Cursor(
    api.user_timeline,
    id="uruharushia",
    ).items():
    t = tweet.text
    print(t)

UnicodeEncodeError: 'cp949' codec can't encode character '\U0001f495' in position 37: illegal multibyte sequence

 

트윗에 그림(?)문자가 있으면 이 에러가 뜨는데 출력은 제대로 되지만 파일에 쓸 때 에러가 발생한다.

이 인코딩으로도 쓰게 하려면 어떻게 해야될까


이 동영상을 보고 호기심이 생겨서 찾아보고 작성한 글이다.

www.youtube.com/watch?v=QTgRNer2epE&t=259s

 

민초는 좋아하고...

하와이안 피자는 먹긴 한다.

'Language > Python' 카테고리의 다른 글

BeautifulSoup와 Selenium을 이용한 web crawling - 0  (0) 2021.07.30
Haar Matrix 만들기  (0) 2020.12.29