파이썬으로 트위터의 트위터 ID를 폭속으로 집계합시다.

불순한 동기



나는 데이터를 분석하고 가설을 세워 실험해 가는 것을 좋아합니다만, 1차 데이터는 취득하기 어렵다고 생각해요. 눈치챘기 때문에, Twitter를 전략적으로 버즈 시키고 싶다고 생각했습니다.

기술적인problem



API를 가지고 보았습니다만, python으로 사용할 수 있는 Tweepy라고 하는 라이브러리가 엄청 사용하기 어렵고 놀랐습니다. 곤란한 것 아래에 정리했습니다.
  • 투고수가 200건 밖에 잡히지 않아, 이것이라면 트위 폐의 사람 절대 곤란할 것이라고 생각했습니다.
    -
  • Tweepy 경유라면 누가 좋아했는지를 잡을 수 없다. restAPI를 돌리면 좋아하는 계정의 사용자 ID를 얻을 수있는 것 같습니다. 덧붙여서 사용자 ID는 사용자 이름이 아닙니다. 봐도 누구의 계정인지 모르겠습니다. 걱정되는 사람을 위해 링크를 붙여 둡니다.
    이것입니다.
  • Tweepy 경유로 취득한 트윗에, Twitter Developer에 등록되어 있는 트윗이 섞는다. 진짜로 이유를 모릅니다만, 고교생 때의 트윗과 섞여서 부끄럽고, 소음 지나서 곤란했습니다.
    이 문제가 너무 수수께끼이므로 해결한 경험이 있는 분은 가르쳐 주시면 감사하겠습니다.

  • 그래서 API 작전은 포기했습니다.
    최근에는 Instagram의 API로 놀 수있는 것도 줄어든 것 같고 외롭네요. 아호처럼 스크래핑 먹어서 서버에 부담 걸릴 정도라면 API 공개 해 주었으면 합니다만,,,

    남은 수단으로 셀레늄을 사용하기로 결정했습니다.

    기술적인 문제 해결



    트위터 게시물 URL을 보시면 깨달을 것입니다.


    이 twitter.com 뒤가 계정 이름이 되고 status 뒤가 TwitterID가 되어 있으므로 일단 TwitterID만을 취소하고 파일에 저장해 둡니다.

    그 후, 각각의 TwitterID로부터 URL을 합성해 requests라든지로 각 투고마다 상세 정보를 취해 데이터 레이크에라도 흩어져 두자는 혼담입니다.

    MongoDB에도 돌진해 둡니다.

    에서 어떻게 가져 오는지 말하면, 셀레늄과 무한 스크롤로 잡혔습니다.

    twitter.py
    import selenium
    from selenium import webdriver
    from bs4 import BeautifulSoup
    
    driver = webdriver.Chrome('C:/selenium/chromedriver.exe')
    driver.get('http://twitter.com/otnk23')
    
    #無限スクロールの部分
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    
    soup = driver.page_source
    text = BeautifulSoup(soup,'html.parser')
    
    #IDを抜く部分
    _id_list = []
    for tweet in text.select("div.tweet"):
        _id_list.append(tweet['data-tweet-id'])
    #リツイートによる重複を無くす
    new_list = list(set(_id_list))
    
    
    #ファイルに書き込み
    for tweet in new_list:
        with open ('otnk23_id.txt','a',encoding='utf-8') as f:
            f.write(tweet+'\n')
    f.close()
    

    이런 느낌으로 잡혔습니다.
    내 계정의 URL과 합성하기 때문에 아마 리트윗이 제외됩니다. . .

    API 경유라면 파라미터로 지정하고 있던 생각이 듭니다.


    jupyter상에서 돌았으므로, 무한 스크롤 1회 밖에 쓰고 있지 않습니다만, 본격 운용한다면 while와 time.sleep 걸어 주세요.

    무한 스크롤로 참고한 기사
    BeautifulSoup의 사촌에서 참고로 한 기사
    selenium에서 참고한 기사

    나중에 자세한 정보를 취하고 CSV로도 토해 낼 뿐입니다만, 배가 줄었으므로 다음 기사에 씁니다.

    다음 기사
    h tps:// 퀵했다. 작은 m/도쿄/있어 MS/아 12화 f262268C48

    좋은 웹페이지 즐겨찾기