Edited at

GetOldTweets-python 1週間以上前の過去ツイートを取得しちゃう#2

More than 1 year has passed since last update.


Inrtoduction

はにおかさいです。

ツイッターで過去ツイートを分析したいと思ったのですが、過去のツイートを取得するすべをなかなか思いつきませんでした。日本語でググっても意図したものは発見せず。

そこで、Githubで検索してみました。すると

oldtweets

GetOldTweets-python

この二つを発見しました。

今回はこのうち2つの目のGetOldTweets-pythonを紹介します。


パッケージ説明


Tweet:特定のツイートについての情報を提供するモデルクラス(?)です。


id (str)

permalink (str)

username (str)

text (str)

date (date)

retweets (int)

favorites (int)

mentions (str)

hashtags (str)

geo (str)


TweetManager: ツイートのモデルを取得する手助けをするマネージャー

getTweets (TwitterCriteria): TwitterCriteriaのインスタンスを使用して取得したツイートのリストを返します。

TwitterCriteria: TweetManagerと一緒に使用する検索のオプション設定の集合。

setUsername (str): @なしのアカウント名

setSince (str. "yyyy-mm-dd"): 検索日時指定(年ー月ー日 から)

setUntil (str. "yyyy-mm-dd"): 検索日時指定(年ー月ー日 まで)

setQuerySearch (str): 検索窓

setTopTweets (bool): Trueの場合は、トップツイートのみが取得されます。

setNear(str): ツイートされたエリアを指定する。

setWithin (str): ツイートされた周辺からどれぐらい離れているか(例 15mi(マイル)).

setMaxTweets (int):設定なしや1より低いと全ツイートを取得。でなければその数のツイートを取得。

Main: 使い方の例

Exporter: "output_got.csv"ファイルにツイートを出力.



Setup

Python3と2があったので、Windows 10,Python 3.6.4で試しました。

git clone https://github.com/Jefferson-Henrique/GetOldTweets-python

cd GetOldTweets-python
#pip install -r requirements.txt ではなく
pip install lxml pyquery


Test

playground.py というのをつくってみて、遊んでみます。


playground.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-
import got3 as got
# ユーザー名でツイートを取得
tweetCriteria = got.manager.TweetCriteria().setUsername('chart_suken').setMaxTweets(1)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]

print(tweet.text)

# 検索でツイートを取得
tweetCriteria = got.manager.TweetCriteria().setQuerySearch('埼玉県').setSince("2015-05-01").setUntil(
"2015-09-30").setMaxTweets(1)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]

print(tweet.text)

# ユーザー名、ツイートで取得
tweetCriteria = got.manager.TweetCriteria().setUsername("haniokasai").setSince("2017-09-10").setUntil(
"2017-09-12").setMaxTweets(1)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]

print(tweet.text)

# 最近の15ツイートを取得
tweetCriteria = got.manager.TweetCriteria().setUsername("Fujiwaraizuho").setMaxTweets(21000)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)
print(tweet)
for v in tweet:
print(v.text)

# 最近の15ツイートを取得
tweetCriteria = got.manager.TweetCriteria().setUsername("zenypota").setTopTweets(True).setMaxTweets(5)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)
print(tweet)
for v in tweet:
print(v.text)



Result



C:\Users\hani>Z:\appdir\py\364\python.exe Z:/workdir/GetOldTweets-python/playground.py
【朗報】 青チャートが動画で解説されてて分かりすぎる件 「全例題」解説動画つきだから、どんどん理解 これで宿題が、捗るネ ▼まずはアプリをダウンロード▼ AppStore⇒ https://appsto.re/jp/zZZiab.i GooglePlay⇒ https://play.google.com/store/apps/details?id=jp.co.suken.libraryapp …pic.twitter.com/ph6ZakvxM6
I'm at ジョナサン 入間店 in 入間市, 埼玉県 https://www.swarmapp.com/c/2IWzmsltQPb
pe用ですからだめです
[]
[<got3.models.Tweet.Tweet object at 0x05DBE5B0>, <got3.models.Tweet.Tweet object at 0x05DBE5D0>, <got3.models.Tweet.Tweet object at 0x05DBE570>, <got3.models.Tweet.Tweet object at 0x051E49B0>, <got3.models.Tweet.Tweet object at 0x05A3DE70>]
[メンテナンス] ・詳細 サービス開始お知らせメール登録の停止 ・期間 今日~未定 ご迷惑をおかけしますがご協力をおねがいいた します。
ありがとうございます! 非常に支えになります!
@ 9werty60y からの寄付がありさらに賞金上乗せです! 1200ZNY + 2mona + 10ZNYとなりす! ありがとうございます!https://twitter.com/zenypota/status/974215515819319296 …
開発者のraspi0124さんがポケットマネーから追加で資金提供をしてくださり、賞金は1200ZNY + 2mona となりました!ありがとうございます!https://twitter.com/raspi0124/status/974219437384589312 …
1200 ZNY prize money was attached to this recruitment!

C:\Users\hani>

image.png

3000ツイートは余裕で取得できますね。待たされますけど。

私のしたかったことはこれです。前回の記事は忘れてください。


Query

image.png

Fujiwaraizuho くんのツイートのみがnullになります。配列が埋まってないし、無論何も取得されてない。エラーもないので原因がわからない。研究のメインテーマに使えない予感。


P.S.

2018/6/30 特定の人物(不快な画像の設定云々をしてる人?)に対して使えないことがあり、それは解決されないっぽいです。issue参照。 https://github.com/Jefferson-Henrique/GetOldTweets-python/issues/172