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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

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

Python

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

1888閲覧

Twitter APIにおいて、"#+アルファベット3文字"という条件に当てはまるツイートを取得したい

sotanswimmer

総合スコア6

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

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

Python

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/12/15 20:26

###前提・実現したいこと
Twitter APIにおいて、"#+アルファベット3文字"という条件に当てはまるツイートを取得したい

###発生している問題・エラーメッセージ
1、"#"のみではツイート取得できない
2、アルファベット(大小関係なし)3文字を引っ張ってくる方法がわからない

エラーメッセージ

###該当のソースコード

python

1url = "https://api.twitter.com/1.1/search/tweets.json" 2 3ser = "#"+"[A-Z]"+"[A-Z]"+"[A-Z]" 4 5params = {'q' : ser, 'count' : 10} 6 7req = twitter.get(url, params=params) 8 9if req.status_code == 200: 10 search_timeline = json.loads(req.text) 11 print(search_timeline.count['statuses']) 12 for tweet in search_timeline['statuses']: 13 print(tweet['user']['name'] + '::' + tweet['text']) 14 print(tweet['created_at']) 15 print('----------------------------------------------------') 16else: 17 print("ERROR: %d" % req.status_code) 18

###試したこと
・特定のアルファベット3文字での取得はできた
・エスケープシーケンスを使ってみた
・正規表現で文字範囲指定してみた

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

guest

回答1

0

tweetAPIを扱うモジュールを持っていないので実際に試していませんが、tweet['text']にツイート内容が入っているなら、これに対して正規表現マッチを試みればいいのではないでしょうか。
そうであれば、次のような感じになると思います。

python

1import re 2 3# 途中省略 4 5r = re.compile("#[a-zA-Z][a-zA-Z][a-zA-Z](?![a-zA-Z])") # "#"のあとにアルファベットが3文字だけ続くパターン 6for tweet in search_timeline['statuses']: 7 if r.search(tweet['text']): 8 # 出力その他の処理 9

投稿2017/12/16 05:35

KojiDoi

総合スコア13671

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

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

sotanswimmer

2017/12/21 01:25

ありがとうございます。 正規表現をこのように書けることを存じ上げませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問