#Inrtoduction
はにおかさいです。
ツイッターで過去ツイートを分析したいと思ったのですが、過去のツイートを取得するすべをなかなか思いつきませんでした。日本語でググっても意図したものは発見せず。
そこで、Githubで検索してみました。すると
この二つを発見しました。
今回はこのうち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 というのをつくってみて、遊んでみます。
#!/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>
私のしたかったことはこれです。前回の記事は忘れてください。
#Query
Fujiwaraizuho くんのツイートのみがnullになります。配列が埋まってないし、無論何も取得されてない。エラーもないので原因がわからない。研究のメインテーマに使えない予感。
#P.S.
2018/6/30 特定の人物(不快な画像の設定云々をしてる人?)に対して使えないことがあり、それは解決されないっぽいです。issue参照。 https://github.com/Jefferson-Henrique/GetOldTweets-python/issues/172