見出し画像

PythonによるTwitter完全自動化ロードマップ ②ツイート自動検索

こんにちは!
未経験からデータ分析エンジニア目指して爆進中、時折挫折中の叢咲(むらさき)といいます。

コロナウイルス禍真っ只中で、引きこもり生活が完全に板についてしまいました。皆様、如何お過ごしでしょうか😭
さて、前回記事で「Twitterで自動ツイートを行う」方法を紹介しました。読んでくださった方、ありがとうございました!

今回の記事は、前回の続編ですが 前回の記事を読んでいなくても読める内容になっているので安心してください!

この記事は、基礎事項を習得し終えた方向けに記事を作成しました。基礎を習得し終えた方の、次のステップとしてこのチュートリアルを実践していただければと思います。
また、前回記事を読み終えた方は ④自動フォロー & RTまで飛ばしてしまってOKです。

これはすごい! Twitter自動化によるメリット

画像1

ここでは、実際にbotを組み込んだアカウントを運用してみて気づいたメリットを紹介していきます。

①ツイートする手間が半減
これはかなり大きいです。いちいちツイートを作成するの、大変ですよね。毎日同じツイートをしているのなら、その部分は完全に自動化できます。

現に僕も「おはようツイート」「おやすみツイート」「今日の積み上げツイート」は自動化してしまっています。作成するだけで手間な上記のツイートが、勝手につぶやかれたら楽ですよね笑

これが全部自動になったら、楽ですし 一日の振り返りにもなっていいですよね!

②拡散のスピードが上がる
これも、自動化してみてびっくりしました。
自動でハッシュタグ付きのツイートが呟かれるので、いつの間にか拡散されているケースが出てきました。自分の発信したい内容が拡散されれば、それだけインパクトを与えられることになります。

③フォロワーが自動的に増えていく
大変ありがたいことに、botから流入してきたフォロワー様が何名もいらっしゃいます。彼らにとって有益な情報を発信し続けられるためにも、面倒なルーティンツイートは自動にしちゃいたいですよね。

④データ分析に使える
完全に個人的な話ですが、機械学習使ったデータ分析を学習している身としては非常にありがたいです。欲しいデータをいくらでも自動で収集してくれるのですから。

どうですか?ワクワクしてきませんか??
Twitterを自動化することで、表現の幅が広がり 有益なことに割く時間が増えていきます。きっと、楽しみながらスキルを伸ばして多くのフォロワーも応援してくれるはずです😁

では、チュートリアルに入っていきましょう!
もし、自分のPCですでにpythonによる開発が行える環境があるのなら、③Twitter Developper登録 まで飛ばしてしまってOKです。

Twitter自動化ロードマップ① pythonの基礎事項習得

ここでTwitterの基礎事項を全て解説してしまうと、解説だけで200ページくらいの教科書になっちゃうので割愛します笑
基礎事項はprogate +α程度で十分です。ぜひ、やってみてください。月額1000円程度とは思えないクオリティの学習サイトです。

Twitter自動化ロードマップ② 環境構築

さて、基礎事項を終えたらいよいよ実践です。その前に自分のPCで環境構築を行なってしまいましょう。
環境構築とは、自分のPC上にプログラミング開発環境を実装することです(そのまんまか)。progateのような学習サイトが出現するまでは、この環境構築で9割の学習者が脱落 とも言われていた鬼門です。今回は、途中で挫折しないようにコピペで済むようにしました。

ここまで、お疲れ様でした!最後にpythonのコードを編集するアプリケーションをインストールして終了です!以下の「Atom」と言うエディタが優秀なので、インストールして使ってみましょう!

以上で、環境構築は終了です。お疲れ様でした!

Twitter自動化ロードマップ③ Twitter Developper登録

スクリーンショット 2020-06-06 18.28.55

次に、Twitterを自動化するために必要なキーの取得を行います。
Twitter Developerと言うページに入り、自分の使っているアカウントを登録しましょう。

いきなり英語でドン引きする方出ると思いますが、安心してください。ネットに優良な記事がたくさんありますので、参考にしてみましょう(2020年6月 下記リンク検閲済み)

少々時間がかかりますが、記事の通りにやっていただければ問題なく進められます!

Twitter自動化ロードマップ③ ツイート検索

さて、いよいよツイートの検索に移りましょう。今回は、特定のキーワードを呟いた人を検索し、彼らの情報を骨抜きにしてしまいましょう。

今回使うメソッドは

api.search(q, count)

です。引数qはqueryの略で 検索したいワードを入力する場所です。また、第二引数countは 何人分の検索を行うか指定します。

import tweepy
import os

CK = os.environ["CK"]
CS = os.environ["CS"]
ATS = os.environ["ATS"]
AT = os.environ["AT"]

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, ATS)
api = tweepy.API(auth)

text = "python"
count = 10

users = api.search(q = text, count = count)
i = 1
for user in users:
   print(user, i, "人目の検索")
   print("\n------------------------\n")
   i+=1

検索結果はこんな感じになります。

スクリーンショット 2020-06-06 20.31.26

スクリーンショット 2020-06-06 20.31.18

何がなんだかさっぱりわからないってばよ...😂
情報量が多すぎて、ターミナルが大変なことになってしまいました... api.search()で取得したのは「Userオブジェクト」なるものらしいですが、情報量が膨大すぎてどのように扱えばいいのか分からなくなってきました...
そこでUserオブジェクトの中身を確認する方法を考えてみましょう。以下のように入力してみてください。

import tweepy
import os

CK = os.environ["CK"]
CS = os.environ["CS"]
ATS = os.environ["ATS"]
AT = os.environ["AT"]

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, ATS)
api = tweepy.API(auth)

text = "progate"
count = 1
users = api.search(q = text, count = count)
print(len(users))

for user in users:
   object_info = dir(user)

   for i in object_info:
       print(i)

pythonの組み込み関数dir()を使いました。これは、引数に指定したオブジェクトの属性やメソッドなどの名前のリストを返す関数です。

今回は「progate」とツイートしたユーザー1人を検索したので、usersの中身(上記スクリプトのuser)は要素1となっているはずです。一体、userの中にはどのような情報が書き込まれているのでしょうか???

結果を見ると以下のような内容でした! いや〜〜〜、分からん!笑

__class__
__delattr__
__dict__
__dir__
__doc__
__eq__
__format__
__ge__
__getattribute__
__getstate__
__gt__
__hash__
__init__
__init_subclass__
__le__
__lt__
__module__
__ne__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__sizeof__
__str__
__subclasshook__
__weakref__
_api
_json
author
contributors
coordinates
created_at
destroy
entities
favorite
favorite_count
favorited
geo
id
id_str
in_reply_to_screen_name
in_reply_to_status_id
in_reply_to_status_id_str
in_reply_to_user_id
in_reply_to_user_id_str
is_quote_status
lang
metadata
parse
parse_list
place
possibly_sensitive
retweet
retweet_count
retweeted
retweets
source
source_url
text
truncated
user

しかし、まだ絶望するのは早いです。userの中身が上記ですが、その中にはuserと言う属性で何かが書き込まれていそうです。早速取り出してみましょう。

import tweepy
import os

CK = os.environ["CK"]
CS = os.environ["CS"]
ATS = os.environ["ATS"]
AT = os.environ["AT"]

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, ATS)
api = tweepy.API(auth)

text = "progate"
count = 1
users = api.search(q = text, count = count)
print(len(users))

for user in users:
   user_info = user.user

   user_info_construction = dir(user_info)
   for j in user_info_construction:
       print(j)

今回は、user.userでuserの中に入っていたuser属性を抽出し出力しました。結果は以下の通りです。

__class__
__delattr__
__dict__
__dir__
__doc__
__eq__
__format__
__ge__
__getattribute__
__getstate__
__gt__
__hash__
__init__
__init_subclass__
__le__
__lt__
__module__
__ne__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__sizeof__
__str__
__subclasshook__
__weakref__
_api
_json
contributors_enabled
created_at
default_profile
default_profile_image
description
entities
favourites_count
follow
follow_request_sent
followers
followers_count
followers_ids
following
friends
friends_count
geo_enabled
has_extended_profile
id
id_str
is_translation_enabled
is_translator
lang
listed_count
lists
lists_memberships
lists_subscriptions
location
name
notifications
parse
parse_list
profile_background_color
profile_background_image_url
profile_background_image_url_https
profile_background_tile
profile_image_url
profile_image_url_https
profile_link_color
profile_sidebar_border_color
profile_sidebar_fill_color
profile_text_color
profile_use_background_image
protected
screen_name
statuses_count
time_zone
timeline
translator_type
unfollow
url
utc_offset
verified

いやいや、どんだけ入ってんねんwww

でも、この中には見覚えのある文字が入っていませんか???
例えば「name」「followers_count」などなど... これらを使えば、pythonと呟いた人の情報抜き取り放題 っぽいですね!

Twitter自動化ロードマップ⑤ Herokuにスクリプトをデプロイしてツイートを自動化しよう

さて、ここまでくれば最終段階です!
いよいよ これまで書いたスクリプトをコンピューターで自動操作する方法について学んでいきましょう!!😊
ここまでクリアできれば、自分の使っているTwitterアカウントが全自動で動き始めることになります。

今回の「Pythonによる Twitter完全自動化ロードマップ」は連載記事なので、Pythonの実行を自動化する方法については記事を分けました。もちろん、無料です。



最後に

ここまで読んでいただきありがとうございました!
すでに色々なことができるようになってきていますが、次回はさらに別の内容に発展させていきましょう。

次回は、フォロー & RTを自動化していきます。この記事まで読めば、多くの方がTwitterで行っている基本動作を全て網羅できます。

それでは、また次回 お会いいたしましょう!!

この記事が気に入ったらサポートをしてみませんか?