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

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

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

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

Python

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

API

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

Q&A

受付中

指定したユーザーの指定した文字列が含まれているツイートを取得したい

study_111
study_111

総合スコア82

Twitter

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

Python

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

API

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

3回答

0グッド

0クリップ

2583閲覧

投稿2020/05/31 00:34

編集2020/05/31 00:44

twetterから、指定したユーザー(自分)の指定した文字列が含まれているツイートをタイムラインから取得したいです。
下記のように試したのですが、タイムラインからは、ユーザーID「@test_account」のツイートではなく、全く別の人のツイートが取得されてしまいました。

for tweet in tweepy.Cursor(api.search,screen_name='test_account',q='2020年05月28日').items(): print('-------------------------') print(tweet.text) exit()

取得されたツイートには、部分的に「28日」や「5月」の文字は入っていたのですが、「2020年05月28日」と連続した文字列が入っていませんでした為、部分的ではなく、一つの単語として挿入されているツイートを取得したいと考えています。
こちらの取得方法につきまして、どなたかアドバイス頂けましたら幸いです。
追記です
「タイムライン」から取得したいと記載したのですが、正確には「自分がしたツイートの一覧」から検索文字列が記載されているツイートを取得したいと考えております。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答3

0

すみません、コメント欄だとコードや画像が貼れないのでこちらに記述しますね。

以下のようにしてみたら、特定ユーザーの特定のキーワードで検索できるみたいです。

python

1for tweet in tweepy.Cursor(api.search, q='"2020年05月28日" from:@TakumiSoftware').items(10): 2 if (tweet.text[:2] == 'RT'): continue 3 4 print(tweet.user.name) 5 print(tweet.text) 6 print('-----------------------------------------------')

イメージ説明

投稿2020/06/01 00:14

編集2020/06/01 00:19
autumn_nsn

総合スコア333

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

こちらでやってみましたが、それなりにテキストは出力されますね。

Python

1import os 2import tweepy 3 4# 環境変数から認証情報を取得する。 5TWITTER_API_KEY = os.environ['TWITTER_API_KEY'] 6TWITTER_API_SECRET_KEY = os.environ['TWITTER_API_SECRET_KEY'] 7TWITTER_ACCESS_TOKEN = os.environ['TWITTER_ACCESS_TOKEN'] 8TWITTER_ACCESS_TOKEN_SECRET = os.environ['TWITTER_ACCESS_TOKEN_SECRET'] 9 10# 認証情報を設定する。 11auth = tweepy.OAuthHandler(TWITTER_API_KEY, TWITTER_API_SECRET_KEY) 12auth.set_access_token(TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_TOKEN_SECRET) 13 14api = tweepy.API(auth) # APIクライアントを取得する。 15 16for tweet in tweepy.Cursor(api.search, q='2020年05月28日').items(10): 17 print('-------------------------') 18 print(tweet.text) 19

イメージ説明

認証の段階でエラーになっているとかはないでしょうか?
あるいは1日(30分だったかな?)の使用制限に引っかかっているとか?

投稿2020/05/31 02:29

編集2020/05/31 02:37
autumn_nsn

総合スコア333

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

study_111

2020/05/31 02:45 編集

ご回答ありがとうございます。 自分もtweepy.Cursorの引数に「q='2020年05月28日'」こちらのみを指定した場合は、ツイートは取得できるのですが、特定のアカウント(自分)を以下のように指定し試してみたのですが、「 q='from:test_account "2020年05月28日"')」ツイートが取得できていない状況なのですよね。。

0

APIにも
https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets
tweepyにも
http://docs.tweepy.org/en/v3.5.0/api.html#API.search
screen_nameなんていうパラメータはないですよね。どうして、何を見て、使えると思ったのでしょうか?


https://developer.twitter.com/en/docs/tweets/search/guides/standard-operators
を読みましょう。

from:interior sent from Twitter account “interior”.

という項があります。

python

1for tweet in tweepy.Cursor(api.search, q='from:test_account "2020年05月28日"').items(): 2 print('-------------------------') 3 print(tweet.text)

が期待するクエリかなと思います。


もっと"間違いなくヒットする"と思われる検索語はヒットしますか?
何ができて、何が出来ないのかを線引きしていく必要があります。

と書きました。

問題の切り分け、質問のやりとりは

python

1for tweet in tweepy.Cursor(api.search, q='from:Kantei_Saigai "感染症対策"').items(): 2 print(tweet.id, tweet.text)

のような"間違いなくヒットする"と思われるものでおこないましょう。
このコードで、私の元ではヒットしました。

上記のコードで、質問者さんの元ではヒットしますか?

ヒットしないなら開示されていない部分のコードの間違い
ヒットするなら質問者さんの実際に入れているクエリの問題
と切り分けられます。

前者なら開示するコードの範囲を広げる、後者なら"実際に入れているクエリ"を開示する、というのが問題解決のためのステップです。

投稿2020/05/31 01:01

編集2020/05/31 03:04
quickquip

総合スコア10421

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

study_111

2020/05/31 01:14 編集

ご回答ありがとうございます。 ツイッターの検索ボックスで、「from:test_account 2020年05月28日」と検索してみたら、該当のツイートが出てきたのですが、プログラム側で、ご提示頂いたコードを参考に、実行し試しみたのですが、何故か何も表示されませんでした...
study_111

2020/05/31 01:17

「screen_name」は「API.user_timeline」の引数だったのですが、色々調べている過程で混乱してしまっていました。。
quickquip

2020/05/31 01:20 編集

ツイッターの検索ボックスとAPIとでは挙動が違う(ツイッターの検索ボックスは公開APIとは違うエンドポイントに繋がっている)ので、不思議はありません。現実の挙動を受け入れるしかないです。 2020年05月28日 じゃなくて、もっと"間違いなくヒットする"と思われる検索語はヒットしますか? 何ができて、何が出来ないのかを線引きしていく必要があります。
study_111

2020/05/31 01:25

いえ...先ほどから、検索ワードを色々と試しているのですが、全くヒットせず、print(tweet.text) の中身が表示されない状況です...
study_111

2020/05/31 03:16

追記ありがとうございます。 追記頂いたコードで試してみましたら、コロナウイルスに関するツイートがヒットしました。 となると、自分の入れたクエリの問題ということですよね。。 しかし、アカウントのユーザーID、及び検索ワードはコピーし、入力したにも関わらず取得できないということは、何故なのでしょうかね...
study_111

2020/05/31 03:24 編集

色々な検索ワードで試しても失敗してしまうことを考えますと、自分のアカウントのツイートの検索自体が何らかの理由でできていない気が致します。。
quickquip

2020/05/31 08:04

いわゆる"鍵付き"だと(たとえ自分のトークンであっても)検索できないようですね あと一応ですが"1週間つぶやいていない"とかそういうことではないですよね
study_111

2020/05/31 08:44

いえ、鍵はつけていないです。ツイートした日時で申しますと、直近だと3日前にはつぶやいていますね。 取り敢えずは、質問させて頂いたロジックを使用せず他の方法で直面していた問題は解決出来たのですが、どうもツイートを取得出来ないというのは気になる所ですね...

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

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

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

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Twitter

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

Python

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

API

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