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
この記事が気に入ったらサポートをしてみませんか?