python PR

pythonでtwitter APIを使用して自動化するツール【無料利用可能】

python twitter 自動化
記事内に商品プロモーションを含む場合があります

これまでpythonでtwitter APIを使用して、twitterを操作する方法を解説してきました

今回はそのまとめとして、pythonでtwitter APIを使用して自動化するツールを作りました

これまでの記事を参考にすれば作成することができます

もしpythonの環境構築ができていないけど、twitterを自動運用したい方は、ココナラから依頼をお願いします

twitter運用の効率化を図ります(ココナラのサイトに飛びます)

pythonでtwitter APIを取得する方法【全18枚の図解+例文あり】

pythonではtwitter以外にも自動化できるものが多くあります

python自動化アイキャッチ
pythonで自動化できること!面倒なことはpythonに任せよう【サンプルコードあり】pythonを使えば面倒な業務も自動化することができます。またAPIを使用すればSNSやECサイトなどから情報を収集することも可能です。この記事では、pythonを使って自動化する方法について解説をしていきます。...

pythonでtwitterを操作してみたい

pythonでtwitterのbotを作成したい

pythonでtwitterを自動化したい

といった方に向けて、書いていきます!

以下の記事では、pythonでtwitterを使う方法をまとめて解説しているので、参考にしてみてください

pythonでtwitterを使ってみよう

pythonでtwitterを扱えるようになると、twitterで行われている懸賞に自動で応募することができるようになります

pythonでtwitterの懸賞に自動応募する
pythonでtwitterの懸賞に自動応募させる【サンプルコードあり】twitterを見ていると、「フォロー&リツイート」でプレゼント企画を行なっているのをよく見かけます。これ、手動で懸賞に参加するのってしんどいですよね。なので、pythonを使って、自動化をしていきたいと思います。...

pythonでtwitter APIを使用して自動化

twitter 自動化効果

下記のコードをうまく使えば、上記のようなインプレッションとか取れます

売り上げ上がります

コードはこれまでのを組み合わせればOKです

いいねをする

#Twitter情報。これは公開NG。
#********には自分自身のAPIキーなどを入力してください

consumer_key        = '********'
consumer_secret     = '********'
access_token        = '********'
access_token_secret = '********'

#Twitterの認証
auth = tweepy.OAuthHandler(consumer_key, consumer_secret1)
auth.set_access_token(access_token, access_token_secret1)
api = tweepy.API(auth)
# 指定した条件(検索ワード、検索件数)に一致するユーザ情報を取得
#search_word = sys.argv[]
search_results = api.search_tweets(q="#********", result_type="mixed",count=20)
for result in search_results:
    tweet_id = result.id #Tweetのidを取得
    user_name = result.user._json['screen_name'] #ユーザーのidを取得
    user_id= result.user._json['id']#ツイートidを取得
    print(user_name,user_id)

    try:
        api.create_favorite(tweet_id) #ファボする
    except Exception as e:
        print(e)

 

python twitter API いいね
pythonでtwitter APIを利用していいねをする【サンプルコードあり】過去の記事でpythonでtwitter APIを利用する方法について解説をしました。今回の記事では、twitter APIを利用して、pythonからツイートに対していいねをしていく方法を解説していきます。...

ツイートを取得する

# ライブラリのインポート
import tweepy
from datetime import datetime,timezone
import pytz
import pandas as pd


# Twitterの認証
#Twitter情報。
#********には自分自身のAPIキーなどを入力してください

consumer_key        = '********'
consumer_secret     = '********'
access_token        = '********'
access_token_secret = '********'

#Twitterの認証
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

# ”wait_on_rate_limit = True” 利用制限にひっかかた時に必要時間待機する
api=tweepy.API(auth,wait_on_rate_limit=True)

# 検索条件の設定
search_word = 'ブログ初心者 min_faves:200'
#何件のツイートを取得するか
item_number = 150

#検索条件を元にツイートを抽出
tweets = tweepy.Cursor(api.search_tweets,q=search_word, tweet_mode='extended',result_type="mixed",lang='ja').items(item_number)

#関数: UTCをJSTに変換する
def change_time_JST(u_time):
    #イギリスのtimezoneを設定するために再定義する
    utc_time = datetime(u_time.year, u_time.month,u_time.day, \
    u_time.hour,u_time.minute,u_time.second, tzinfo=timezone.utc)
    #タイムゾーンを日本時刻に変換
    jst_time = utc_time.astimezone(pytz.timezone("Asia/Tokyo"))
    # 文字列で返す
    str_time = jst_time.strftime("%Y-%m-%d_%H:%M:%S")
    return str_time

#抽出したデータから必要な情報を取り出す
#取得したツイートを一つずつ取り出して必要な情報をtweet_dataに格納する
tw_data = []

for tweet in tweets:
    #ツイート時刻とユーザのアカウント作成時刻を日本時刻にする
    tweet_time = change_time_JST(tweet.created_at)
    create_account_time = change_time_JST(tweet.user.created_at)
    #tweet_dataの配列に取得したい情報を入れていく
    tw_data.append([
        tweet.id,
        tweet_time,
        tweet.full_text,
        tweet.favorite_count, 
        tweet.retweet_count, 
        tweet.user.id, 
        tweet.user.screen_name,
        tweet.user.name,
        tweet.user.description,
        tweet.user.friends_count,
        tweet.user.followers_count,
        create_account_time,
        tweet.user.following,
        tweet.user.profile_image_url,
        tweet.user.profile_background_image_url,
        tweet.user.url
                       ])

#取り出したデータをpandasのDataFrameに変換
#CSVファイルに出力するときの列の名前を定義
labels=[
    'ツイートID',
    'ツイート時刻',
    'ツイート本文',
    'いいね数',
    'リツイート数',
    'ID',
    'ユーザー名',
    'アカウント名',
    '自己紹介文',
    'フォロー数',
    'フォロワー数',
    'アカウント作成日時',
    '自分のフォロー状況',
    'アイコン画像URL',
    'ヘッダー画像URL',
    'WEBサイト'
    ]

#tw_dataのリストをpandasのDataFrameに変換
df = pd.DataFrame(tw_data,columns=labels)

#CSVファイルに出力する
#CSVファイルの名前を決める
file_name='tw_data.csv'

#CSVファイルを出力する
df.to_csv(file_name,encoding='utf-8-sig',index=False)

 

pythonでtwitter APIを使用してツイートを取得する
pythonでtwitter APIを利用してツイートを取得する【サンプルコードあり】今回の記事では、pythonでtwitter APIを使用して、ツイートを取得する方法について解説していきたいと思います。前回の記事ではpythonでtwitterを扱うために、twitter APIの取得方法に解説をしました。twitter APIを取得していない場合には、そちらもご覧ください...

定期的にランダムでツイート

import random
import tweepy

#****には自身のコードを入力してください
CONSUMER_KEY = '****'
CONSUMER_SECRET = '****'
ACCESS_TOKEN = '****'
ACCESS_SECRET = '****'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

#****にツイートしたい内容を入力していきます.「,」で区切ることで、複数登録できます
tweetlist=["****"]
#リストに含まれるツイート内容をランダムでツイート
api.update_status(random.choice(tweetlist))
python ツイートアイキャッチ
pythonでtwitter APIを使用して定期的・ランダムにツイートする【サンプルコードあり】この記事では、pythonでtwitterAPIを使用してツイートする方法について解説していきます。これまでに、いいねやツイートを取得する方法なども解説しているので、合わせることで、twitterマーケティングに応用可能です。ぜひ参考にしてみてください...

ダイレクトメッセージを送る

# ライブラリの読み込み
import tweepy

#****には自身のコードを入力してください
CONSUMER_KEY = '****'
CONSUMER_SECRET = '****'
ACCESS_TOKEN = '****'
ACCESS_SECRET = '****'

#twitter認証
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

# アカウント指定(Twitterアカウントの@以降の英数字)
Account = '****'

# アカウントの内部IDを取得する
inner_id = api.user_timeline(Account, count=1, page=0)[0].user.id

api.send_direct_message(recipient_id=inner_id,text='Hello world!')
python Twitter API ダイレクトメッセージ
pythonでtwitter APIを使用してダイレクトメッセージを送る【サンプルコード付き】これまでにpythonでtwitter APIを使用していいねをする方法やツイートを取得する方法、定期的・ランダムにツイートする方法について解説をしました。今回はpythonでtwitter APIを使用して、ダイレクトメッセージを送る方法について、解説していきます。...

自動フォローをする

# ライブラリの読み込み
import tweepy

#****には自身のコードを入力してください
CONSUMER_KEY = '****'
CONSUMER_SECRET = '****'
ACCESS_TOKEN = '****'
ACCESS_SECRET = '****'

#twitter認証
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)
  
# フォロワーを新しい順で取得。(件数は5件としています。)
flist= api.followers(count=5)
 
for f in flist:
    # 相手のアカウントの説明文にフォローバックしたくない[キーワード]があればここで登録。
    #(例:副業など)
    if "<相手のアカウントの説明文内のフォローバックしたくないキーワード>" in f.description:
         continue
    else:
        api.create_friendship(f.id)
python 自動フォロー
pythonを使ってtwittreアカウントを自動フォローをする【サンプルコードあり】この記事では、pythonでtwitter APIを使用して自動でフォローする方法について解説していきます。自動アンフォローも合わせて解説しますので、参考にしてください。...

指定アカウントのツイートにいいね

# ライブラリの読み込み
import tweepy

#****には自身のコードを入力してください
CONSUMER_KEY = '****'
CONSUMER_SECRET = '****'
ACCESS_TOKEN = '****'
ACCESS_SECRET = '****'

#twitter認証
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

#いいねするアカウントの指定及びいいね件数の設定
tweets = api.user_timeline(screen_name= "@****",count=3)
for tweet in tweets:
    api.create_favorite(tweet.id)
python twitter 指定アカウント いいね
pythonでtwitter APIを使って、指定アカウントのツイートにいいねする【サンプルコードあり】この記事では、pythonでtwitter APIを使用して指定したアカウントにいいねする方法について解説をしていきます。これまでの記事を参考にしてもらえれば、コードを書くことができるので、力試しと思って、サンプルコードは見ずにトライしてみてください。...

twitterから画像を取得する

# IMPORT
import os
import tweepy
import time 
import urllib.request, urllib.error

# 画像の保存先
#保存先のパス名を「*****」に入力
IMG_DIR = '******'

# 環境変数
CONSUMER_KEY        = '******'
CONSUMER_SECRET     = '******'
ACCESS_TOKEN_KEY    = '******'
ACCESS_TOKEN_SECRET = '******'

# 検索キーワード
#好きなキーワードを「*****」に入力
TARGET = '*****'

# 検索オプション
SEARCH_PAGES_NUMBER = 10 # 読み込むページ数
PER_PAGE_NUMBER = 10 # ページごとに返されるツイートの数(最大100)

class imageDownloader(object):
    def __init__(self):
        """初期設定
        """
        super(imageDownloader, self).__init__()
        self.set_api()

    def run(self):
        """実行
            1. twitterページを指定数取得
            2. ページ内のツイートのうち、キーワードがあるtweetのみ取得
            3. 画像URLを取得
            4. ダウンロード実行
        """
        self.max_id = None # ページを跨ぐ検索対象IDの初期化
        for page in range(SEARCH_PAGES_NUMBER):
            ret_url_list = self.search(TARGET, PER_PAGE_NUMBER)
            for url in ret_url_list:
                print('OK ' + url)
                self.download(url)
            time.sleep(0.1) # TimeOut防止

    def set_api(self):
        """apiの設定
        """
        auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
        auth.set_access_token(ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)
        self.api = tweepy.API(auth)

    def search(self, target, rpp):
        """twitterで検索実行
        """
        # 検索結果
        ret_url_list = []

        try:
            # 検索実行
            if self.max_id:
                # q: クエリ文字列, rpp: ツイート数, max_id: より小さい(古い)IDを持つステータスのみを返す
                res_search = self.api.search_tweets(q=target, lang='ja', rpp=rpp, max_id=self.max_id)
            else:
                res_search = self.api.search_tweets(q=target, lang='ja', rpp=rpp)
            # 結果を保存
            for result in res_search:
                if 'media' not in result.entities: continue
                for media in result.entities['media']:
                    url = media['media_url_https']
                    if url not in ret_url_list: ret_url_list.append(url)
            # 検索済みidの更新し、より古いツイートを検索させる
            self.max_id = result.id
            # 検索結果の返却
            return ret_url_list
        except Exception as e:
            self.error_catch(e)

    def download(self, url):
        """画像のダウンロード
        """
        url_orig = '%s:orig' % url
        path = IMG_DIR + url.split('/')[-1]
        try:
            response = urllib.request.urlopen(url=url_orig)
            with open(path, "wb") as f:
                f.write(response.read())
        except Exception as e:
            self.error_catch(e)

    def error_catch(self, error):
        """エラー処理
        """
        print("NG ", error)

def main():
    """メイン処理
    """
    try:
        downloader = imageDownloader()
        downloader.run()
    except KeyboardInterrupt:
        # Ctrl-Cで終了
        pass

if __name__ == '__main__':
    main()

twitterデータからテキストマイニングを行う

import tweepy
from datetime import datetime,timezone
import pytz
import pandas as pd
import collections
import matplotlib.pyplot as plt
from wordcloud import WordCloud

CONSUMER_KEY = ''
CONSUMER_SECRET = ''
ACCESS_TOKEN = ''
ACCESS_SECRET = ''

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

search_results = api.search_tweets(q="", result_type="recent",tweet_mode='extended',count=5)

tw_data = []
for tweet in search_results:
    #tweet_dataの配列に取得したい情報を入れていく
    tw_data.append([
        tweet.id,
        tweet_time,
        tweet.full_text,
        tweet.favorite_count, 
        tweet.retweet_count, 
        tweet.user.id, 
        tweet.user.screen_name,
        tweet.user.name,
        tweet.user.description,
        tweet.user.friends_count,
        tweet.user.followers_count,
        create_account_time,
        tweet.user.following,
        tweet.user.profile_image_url,
        tweet.user.profile_background_image_url,
        tweet.user.url
                       ])

#取り出したデータをpandasのDataFrameに変換
#CSVファイルに出力するときの列の名前を定義
labels=[
    'ツイートID',
    'ツイート時刻',
    'ツイート本文',
    'いいね数',
    'リツイート数',
    'ID',
    'ユーザー名',
    'アカウント名',
    '自己紹介文',
    'フォロー数',
    'フォロワー数',
    'アカウント作成日時',
    '自分のフォロー状況',
    'アイコン画像URL',
    'ヘッダー画像URL',
    'WEBサイト'
    ]

#tw_dataのリストをpandasのDataFrameに変換
df = pd.DataFrame(tw_data,columns=labels)

df1=df.iat[2,2]
df2=df.iat[3,2]
tw_text=df1 + df2
f=open('text.txt','w')
f.write(tw_text)
f.close

f= open("/text.txt", 'r', encoding='UTF-8')
text=f.read()
f.close()

word_list=[]
while node:
    word_type = node.feature.split(',')[0]
    if word_type in ["名詞",'代名詞']:
        word_list.append(node.surface)
    node=node.next
word_chain=' '.join(word_list)

c=collections.Counter(word_list)
font_path='/System/Library/Fonts/ヒラギノ明朝 ProN.ttc'
words = ['https','t','co','自民','し','w','そう', 'ない', 'いる', 'する', 'まま', 'よう', 'てる', 'なる', 'こと', 'もう', 'いい', 'ある', 'ゆく', 'れる', 'ん', 'の']
result = WordCloud(width=800, height=600, background_color='white', 
                   font_path=font_path,regexp=r"[\w']+", 
                   stopwords=words).generate(word_chain)
result.to_file("./wordcloud_sample1.png")
print(c.most_common(20))
fig = plt.subplots(figsize=(8, 10))

twitterを自動化する

定期実行ツールはcronの他にHerokuと呼ばれるものもあります

Herokuを使った方がうまくいく気がします

pythonを使ってtwitterの自動化-twitter運用効果あり-

上記note無料部分で、Herokuの設定ができますので、参考にしてください

もし代行で問題なければ、twitter運用の効率化を図りますからご連絡ください

まとめ

twitterまとめ
おすすめプログラミングスクール

DMMWEBCAMP
  • WEBCAMPはコスパ最強
  • WEBCAMPは初心者に優しい充実したサポート付き
  • 16週間プランを選択して、返金してもらおう
WEBCAMPの公式ページはこちら WEBCAMPの口コミ・評価はこちら
テックアカデミー  
  • テックアカデミーは費用対効果抜群
  • テックアカデミーのサポートは個人の能力に応じつつ、python初心者に優しい
  • まずは無料体験でテックアカデミーを知ってから受講を決める
テックアカデミーの公式ページはこちら テックアカデミーの口コミ・評価はこちら
キカガク
  • 多種多様なスキルコース
  • 初心者から専門家まで対象
  • 給付金利用で費用を抑えられる
キカガクの公式ページはこちら キカガクの口コミ・評価はこちら
Aidemy Premium
  • 完全オンラインで、時間や場所に縛られず学習したい
  • マンツーマン学習サポートにより実践に近い経験をしたい
  • 未経験から機械学習エンジニアになりたい
Aidemy Premiumの公式ページはこちら Aidemy Premiumの口コミ・評価はこちら
My Agile Privacy
This website uses technical and profiling cookies. Clicking on "Accept" authorises all profiling cookies. Clicking on "Refuse" or the X will refuse all profiling cookies. By clicking on "Customise" you can select which profiling cookies to activate.