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

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

新規登録して質問してみよう
ただいま回答率
85.35%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Twitter

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

Python

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

Q&A

0回答

2092閲覧

twintを使って最新ツイートを継続的に取得したい

unisara

総合スコア8

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Twitter

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

Python

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

0グッド

0クリップ

投稿2021/06/03 08:40

あるキーワードで検索したツイートをpythonのtwintでスクレイピングしたいんですが、最新ツイートをリアルタイムで取得するのに苦労しています。
通常、twintを使ってキーワードでのスクレイピングを行うと、現時点の最新ツイートから過去に遡って取得されつづけます。
Sinceを使って現在時刻から1秒まえのツイートから取得する方法も試したんですが、うまく動作しません。

試したコード

import twint from datetime import datetime, timedelta nowdate = datetime.now() - timedelta(seconds=1) strdate = "{0:%Y-%m-%d %H:%M:%S}".format(nowdate) while True: c = twint.Config() c.Search = 'lang:ja' c.Since = strdate c.Store_json = True namedate = "{0:%Y%m%d%H%M%S}".format(nowdate) c.Output = 'result' + namedate + '.json' twint.run.Search(c) date = datetime.strptime(strdate, '%Y-%m-%d %H:%M:%S') nowdate = date + timedelta(seconds=1) strdate = "{0:%Y-%m-%d %H:%M:%S}".format(nowdate)

現在時刻から1秒遡った条件で抽出して、1秒ずつ加えていく仕組みです。
こちら実行したところ、おそらく「twint.run.Search(c)」で止まっています。
それ移行の構文が実行されていないようでした。
ご教示よろしくお願いいたします。

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

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

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

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

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

haihaikazuma

2021/06/04 00:02

>うまく動作しません こちらどういった挙動でしょうか。 ①実行はされるけど、値が取れない。 ②実行時にエラーが出る。 ③そもそもデバッグ実行すら通らない。 動作によって回答が大きく変わると思います。
unisara

2021/06/04 00:15 編集

ありがとうございます。 twint.run.Search(c)まで走って、その後進まない感じです。 理想としては、ここで上げたコード以外の良い方法があれば教えていただきたいです。 よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2021/06/04 00:47

おはようございます。 問題文読ませていただきました。 素朴な疑問なのですが、whileせずに、twint.run.Search(c)を1度だけ動かすことはできている認識で問題ありませんか?
unisara

2021/06/04 00:55

ありがとうございます。 はい。その認識で問題ありません。
退会済みユーザー

退会済みユーザー

2021/06/04 01:29 編集

なるほど。 nowdate = datetime.now() strdate = "{0:%Y-%m-%d %H:%M:%S}".format(nowdate) c = twint.Config() c.Search = 'lang:ja' c.Since = strdate c.Store_json = True namedate = "{0:%Y%m%d%H%M%S}".format(nowdate) c.Output = 'result1' + namedate + '.json' twint.run.Search(c) nowdate = datetime.now() strdate = "{0:%Y-%m-%d %H:%M:%S}".format(nowdate) c = twint.Config() c.Search = 'lang:ja' c.Since = strdate c.Store_json = True namedate = "{0:%Y%m%d%H%M%S}".format(nowdate) c.Output = 'result2' + namedate + '.json' twint.run.Search(c) を実行した場合、result1, result2のjsonファイルが生成されて、結果が違うことを確認できますでしょうか?????‍♂️
unisara

2021/06/04 02:19 編集

上記実行したところresutl1のみ生成されました。 プログラムは一回目のtwint.run.Search(c)で止まっていますね。
退会済みユーザー

退会済みユーザー

2021/06/04 04:35

んー、公式をみる感じloopさせる挙動などを試みていない、stackoverflowなどでやっている人はいるが解決している人がいないので、難しいですね。。 https://pypi.org/project/twint/ 私の力では手助けできそうにないです。申し訳ない。????‍♂️
unisara

2021/06/04 06:16

承知しました。 ご協力いただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問