質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

258閲覧

pythonでTwitterの検索機能を利用する方法を教えて下さい。

sawady0920

総合スコア13

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/07/23 05:47

前提・実現したいこと

pythonでtwitterAPIかURLを使って駄洒落を検索するプログラムを作りたい。

発生している問題・エラーメッセージ

twitterAPIにはまだ触れていませんが、使うことで実現可能か疑問であるため質問させていただきます。例えば、「神田 噛んだ」「カレー 華麗」などの単語ペアのリストがあって、これらを1ペアずつAND検索をしてその結果を表示することは可能でしょうか。 それかURLに直接入力するようなプログラムを書けるようにした方が良いのでしょうか。 拙い文章ですが、回答お願いいたします。

該当のソースコード

python

試したこと

特になし。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

結論から言えば可能なのでまずはAPIを試してみてください。

Twitter REST APIの使い方がよくわからないという場合は以下のサイトでわかりやすく説明されているので読んでください。

TwitterのAPIを利用する大まかな流れとしては、https://apps.twitter.comでアプリケーションの登録をして、アクセストークンを発行するという感じです。

とはいえ、どうコードを書けばいいのかわからないという可能性もあるので参考としてコードを置いておきます。

パラメーターの'q'に検索する言葉を渡せばいいです。一応、Twitter検索の演算子を利用することができるのでAND検索も可能です。

python

1import os 2 3from requests_oauthlib import OAuth1Session 4from dotenv import load_dotenv 5 6 7def call_api(query, oauth, count=50): 8 endpoint = "https://api.twitter.com/1.1/search/tweets.json" 9 params = {"q": query, 10 "lang": "ja", 11 "result_type": "recent", 12 "count": count} 13 return oauth.get(endpoint, params=params).json() 14 15 16def get_search_results(res): 17 values = res['statuses'] 18 result = [] 19 for value in values: 20 result.append((value['user']['name'], value['text'], value['created_at'])) 21 return result 22 23 24if __name__ == "__main__": 25 # Prepare api keys and endpoint 26 env_path = os.path.join(os.path.dirname(__file__), ".env") 27 load_dotenv(env_path) 28 TWITTER_CONSUMER_KEY = os.environ.get('TWITTER_CONSUMER_KEY') 29 TWITTER_CONSUMER_SECRET = os.environ.get('TWITTER_CONSUMER_SECRET') 30 TWITTER_ACCESS_TOKEN = os.environ.get('TWITTER_ACCESS_TOKEN') 31 TWITTER_ACCESS_TOKEN_SECRET = os.environ.get('TWITTER_ACCESS_TOKEN_SECRET') 32 33 twitter_oauth = OAuth1Session(client_key=TWITTER_CONSUMER_KEY, 34 client_secret=TWITTER_CONSUMER_SECRET, 35 resource_owner_key=TWITTER_ACCESS_TOKEN, 36 resource_owner_secret=TWITTER_ACCESS_TOKEN_SECRET) 37 38 q = "カレー 華麗" 39 40 response = call_api(q, twitter_oauth, count=5) 41 [print(v) for v in get_search_results(response)] 42

投稿2018/07/23 08:52

crimnut

総合スコア380

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご丁寧にありがとうございます!試してみます!

投稿2018/07/23 09:16

sawady0920

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問