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

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

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

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

Python

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

Q&A

解決済

1回答

1105閲覧

Tweepy api.searchの結果が毎回同じである問題

aheshiyu_tt

総合スコア11

Twitter

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

Python

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

0グッド

0クリップ

投稿2020/09/25 03:11

編集2020/09/25 05:59

実現したいこと

api.searchを使って毎回異なる結果を得たいです.

発生している問題と具体的な実現したいこと

アプリ上やウェブ上のTwitterで検索条件を入れて検索すると,その条件を含むツイートが多く表示されます.
また,その条件下で更新をかけると,新たに過去のツイートが表示されます.

しかし,プログラムからの検索では何度検索しても同じ結果しか得られません.

現在は大量のツイート検索を避け,1回あたり10件のツイートを取得するようにしていますが,毎回同じツイートが取得されてしまいます.
1回あたりの件数を100件などと多く設定すれば,11件以降のツイートは異なる結果が得られるとは思いますが,
同じ10件という数の制限で異なる検索結果を得るにはどのようにすればよいでしょうか.

再度検索することはTwitter上で更新をかけることと同じだと思うため,本来であれば異なる結果が表示されるべきだと思っています.

なお,検索タイプはpupularにしています.

よろしくお願いいたします.

補足・追記

上記の内容では質問内容が伝わりにくいと感じたため,ここに改めて実現したいことを書きます.

例えば「Python」というワードを含むツイートは,これまでに大量にツイートされているはずです.
ここで,検索条件に「Python」を追加して10件検索すると,もちろん過去のツイートが10件ヒットします.
しかし,2回目に実行すると1回目の実行と同じツイートが得られてしまうのが現状です.
実現したいことは,すでに取得したツイート以外の検索条件を含むツイートを取得したいです.
この例でいえば,これまでの「Python」というワードを含むツイートを全て取得したいということです.

アプリやウェブ上の正規のルートにおいて手動で検索すると多くの過去ツイートが検索されます.このような動作をプログラムからの検索で実現できるでしょうか.

理想としてましては,今まで取得したツイートは検索対象から外すということができれば完璧なのですが,それは無理だろうと思っております.

ご回答よろしくお願いいたします.

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

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

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

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

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

quickquip

2020/09/25 05:50

> 新規のツイート という表現からは、取得済みのツイートより「新しい」ツイートをイメージしてしまいますが、 > これまでに大量にツイートされているはずです. という表現からは、取得済みのツイートより「古い」ツイートを検索したいようにも思えます。 どちらですか?
aheshiyu_tt

2020/09/25 05:56

ご指摘ありがとうございます。 私の表現が良くありませんでした. quickquip さんがおっしゃる通り「古い」ツイートが正しい表現です. 私が思っていた「新規」とはこれまで自分が取得していないツイートという意味でした. 質問内容は修正しておきます.
guest

回答1

0

ベストアンサー

APIのresult_typeのデフォルトがmixedなので、明にrecentを指定したらいかがでしょうか。

https://developer.twitter.com/en/docs/twitter-api/v1/tweets/search/api-reference/get-search-tweets

result_type

Optional. Specifies what type of search results you would prefer to receive. The current default is "mixed." Valid values include:

  • mixed : Include both popular and real time results in the response.

  • recent : return only the most recent results in the response

  • popular : return only the most popular results in the response.


2回目のアクセスで「取得済みのツイートのIDのうち一番小さいもの - 1」を、max_idパラメータに指定します。

max_id

Returns results with an ID less than (that is, older than) or equal to the specified ID.

投稿2020/09/25 03:49

編集2020/09/25 06:34
quickquip

総合スコア11065

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

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

aheshiyu_tt

2020/09/25 05:43

ご回答ありがとうございます. result_type を recent や mixed にしてみたところ,初めの実行では新たなツイートが10件取得できましたが,それ以降の実行では同じツイートが取得されました.(2回目の実行が1回目の実行に対して早すぎたということかもしれませんが) 質問内容に「補足・追記」を追加いたしました. 先ほどの質問では伝えきれていない部分をより詳細に書いたつもりです. よろしければ,補足をご覧の上でもう一度回答をお願いいたします. よろしくお願いします.
aheshiyu_tt

2020/09/25 09:52

ご回答の修正ありがとうございます. max_id について調べてみたところ,このやり方で異なるツイートを取得できそうです. 長々とお付き合いしていただきありがとうございました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問