私の近くでPython学ぶOR使っている人いるかな?
ということを知りたくて、Twitter Developerのアカウントを取り、「福岡在住の人で、pythonに関する情報を発信している」人を出力するプログラムを作ろうとしています。
以下の条件にあうユーザー名を抽出したい
- 福岡県在住
- 「python」という単語が入ったツイートをしている
今困っていること
q = 'python'
とすればツイートは絞り込めるようだが、User
オブジェクトのlocation
フィールドが"福岡"に等しいという条件はどうやって条件に落とし込むのか。
現在のコード
python
1# -*- coding: utf-8 -*- 2import tweepy 3 4auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 5auth.set_access_token(access_token, access_token_secret) 6 7api = tweepy.API(auth) 8 9for status in api.search(q = '"福岡"' and 'python', lang='ja', count=10): 10 print(status.user.name)
# 出力結果 macOS しえら 城陽人 小泉ひやかし Raiden@Python勉強してます。 Nαvi ふえざあ໒꒱໒꒱໒꒱· ゚ みけ@Malaysia Nαvi gt Nαvi
コード完成形
python
1# -*- coding: utf-8 -*- 2import tweepy 3import csv 4 5""" 6福岡にいて、python関連のつぶやきをしている人を探します。 7範囲は博多駅を起点に70kmです。北九州市も入っています。 8""" 9 10 11auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 12auth.set_access_token(access_token, access_token_secret) 13 14api = tweepy.API(auth) 15 16#csv出力 17with open('tweets_python.csv', 'w+',newline='',encoding='utf-8') as f: 18 n = 0 19 for status in api.search(q = 'python' or 'tweepy', lang='ja', geocode="33.590045,130.420611,70km", count=100): 20 sc_n = status.user.screen_name 21 u_loc = status.user.location 22 23 writer = csv.writer(f, lineterminator='\n') 24 writer.writerow([n, '@' + sc_n, u_loc]) 25 n += 1 26pass
出力結果
csvファイルでの出力となります。厳密に言うと博多から70km圏内のツイートを指定しています。またツイートを投稿した場所?で取っているので横浜在住の方も入っています。
api.search
でcount=10
とcount=100`のどちらも試したのですが、結果変わらず。。。重複している部分もあるので、福岡県内でTwitter使用&python情報ツイート中な方は私を入れても8人。。。?(;´▽`A``
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/22 01:28
2018/08/22 05:19 編集
2018/08/22 06:35