見出し画像

PythonでTwitterにいるアライさんを抽出する

動作環境

・Python3.6.8
・Windows10

目次

0.前置き
1.コード
2.まとめ

0.前置き

最近Twitterにアライさんが増えてるのでアライさんのID一覧が取得できたら便利だなーって思った。何のためにとは言わないけど。

1.コード

Twitterに検索をかけ、名前に"アライさん"が入っているユーザーを探します。
下記のコードではツイート1000個分探索し、その中から表示名に"アライさん"が入っているユーザーの表示名とスクリーンネーム(ID)をprintし、最後にaraisan.csvにスクリーンネームを出力しています。

config.py

CONSUMER_KEY = "***"
CONSUMER_SECRET = "***"
ACCESS_TOKEN = "***"
ACCESS_TOKEN_SECRET = "***"

main.py

# -*- coding: utf-8 -*-

import json, config
import pandas as pd
import csv
from requests_oauthlib import OAuth1Session

CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
twitter = OAuth1Session(CK, CS, AT, ATS)

def main():
    url = "https://api.twitter.com/1.1/search/tweets.json"
    CHECK_WORDS = 'アライさん'
    filename = "araisan.csv"

    params = {'q':'アライさん','count': 100, 'result_type' : 'recent'}
    r = twitter.get(url, params = params)

    results = []
    cnt = 0

    if r.status_code == 200:
        while True:
            search_timeline = json.loads(r.text)
            for tweet in search_timeline['statuses']:
                name = tweet['user']['name']
                screen_name = tweet['user']['screen_name']
                maxid = int(tweet["id"]) - 1
                cnt += 1

                if CHECK_WORDS in name:
                    print("{}:@{}".format(name,screen_name))
                    results.append(screen_name)

            if cnt >= 1000:
                break

            url = "https://api.twitter.com/1.1/search/tweets.json?count=100&lang=ja&q=" + CHECK_WORDS + "&max_id=" + str(maxid)
            r = twitter.get(url)

        results = list(set(results))
        f = open("./{}".format(filename),"w")
        for x in results:
            f.write(str(x) + "\n")
        f.close
    else:
        print("ERROR: %d" % r.status_code)

if __name__ == '__main__':
    print("Start")
    main()
    print("Done")

実行結果

出力ファイル(araisan.csv)

rlwvbP9MLzabJYY
araisanhikan
arai_san_syoku
MClsZvg1v9qz5Uy
~中略~
ku_neet_arai
araisanlovesyou
araiguma_robo
arai_ADHD_net

ちなみに、270人のアライさんがいました。

2.まとめ

今回のコード

araisan_search - akaness1git GitHub

この記事が気に入ったらサポートをしてみませんか?