サイト記事を自動でTweetしてくれるbotをPythonで作る

Python

本記事は、ブログを運営し始めた方、Twitterを使って、自分の記事を発信したい方に向けた記事になります。

ある程度タイトルのようなことに興味のある人と推測しているので、全くプログラミングがわかりませんという方は別の記事に当たってください。

【簡単3ステップ】Twitter botの作り方!活用法やChatbot開発も紹介 | プログラミングスクールならテックキャンプ
X(旧Twitter)を自動化したいですか?本記事では、Twitter botの作り方を3ステップで紹介。Twitter botを自作したい人は必見。

上記の記事から、プログラミング経験がないだとか、APIって何?という人にも始められると思います。ぜひこちらの記事も参考にしてみて下さい。

さて、それでは早速本題に入っていきましょう!

まずはコードから

# coding: UTF-8
from requests_oauthlib import OAuth1Session
import requests
from bs4 import BeautifulSoup
import random

# 全記事一覧のURLからツイートしたいURLを引っ張ってくる
res = requests.get("自分のサイトのサイトマップURL") #サイトマップにアクセスしている
soup = BeautifulSoup(res.text, "html.parser") #アクセスして、そのHTMLを文字情報として取得
links = [] #サイトマップに記載されているURLを格納するための空のリスト

for url in soup.find_all('a'): #取得した要素for文で一つずつ検証していく
    url.get = url.get('href')

    #<----------------------!!要編集!!---------------------->
    #BOTに入れるURLを条件分岐で取得するかしないかを判定させます。

    if url.get is None: #URLが取得できない場合はパス
        continue
    elif "tag" in url.get: #URLに文字"tag"があったらURLをツイートしない
        continue
    elif "moshimo" in url.get: #アフィリエイトタグが入り込むので除外
        continue
    elif "feed" in url.get: #feed記事を除外 などなど
        continue
    elif "その他の条件①" in url.get:
        continue
    elif "その他の条件②" in url.get:
        continue
    elif "その他の条件③" in url.get:
        continue
    elif "その他の条件④" in url.get:
        continue
    elif "https://zizou-book-lab.com/" in url.get: #最終的に上以外のURLならリストに格納する
        links.append(url.get)
    else:
        print("else") #不要
    #<----------------------!!ココマデ!!---------------------->


post_article=random.choice(links) #ランダム抽出する


#<----------------------!!要編集!!---------------------->
#ここにKeyとToken
CONSUMER_KEY = "************************"
CONSUMER_SECRET = "************************"
ACCESS_TOKEN = "************************"
ACCESS_TOKEN_SECRET = "************************"
#<----------------------!!ココマデ!!---------------------->


twitter = OAuth1Session(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
url = "https://api.twitter.com/1.1/statuses/update.json"


#<----------------------!!要編集!!---------------------->
#ツイート内容
tweet = "【自動ツイート】本日の記事はコチラ→ " + post_article + " #書評 #データサイエンティスト"
#<----------------------!!ココマデ!!---------------------->


params = {"status" : tweet}


req = twitter.post(url, params = params) #ツイートを実行する部分

PCで読まれている方は、ちょうどこの右側くらい→
に私のTwitterのタイムラインが表示されているかと思います。それを参考にしてみてください。

この中身で、要編集の部分をちゃんと編集できていれば、ほぼコピペでbotが作れると思います。
ただし、私の認識のbotは「一定間隔もしくは一定の回数、自動でツイートしてくれる」というもので、おそらくこれを見にきている方もそうだと思います。
上のPythonスクリプトを書いて実行するだけでは、上記のような要件は満たせません。定期的に実行するためのスケジューラー設定が必要になります。

手順

では、以下ざっくりとした手順です。

  1. サイトについて
    1. サイトを作りましょう ←これは当然できてますよね?
    2. サイトマップを作りましょう ←【WordPress サイトマップ プラグイン】検索
  2. Twitterについて
    1. Twitterのアカウントを作りましょう ←これは当然できてますよね?
    2. Twitter APIを使えるようにしましょう。 ←これがちょっと難しい
  3. Pythonについて
    1. 先ほどのコードで.pyファイルを作成
    2. バッチ処理(定期実行)できるようにスケジューラーに登録する

ざっくりこんなところです。
この手順を全て網羅的に書いてくれている神記事のリンクは以下のものです。

PythonとTwitterAPIで作るブログ記事自動ツイートbot - Qiita
#はじめに自分の勉強用に運営している用語辞典的なブログがあるのですが、記事の数も増えてきて人様にみていただけるようになってきたので更なる発展のため、Twitterで宣伝してみることにしました。と…

具体的な細かい手順は上記の記事にお譲りします。
Twitterの開発申請なんかも、書いてあることをちょっと変えてリクエスト送っただけでしたがすんなり許可が出ました。

こういうの残してくれている人って、ほんとありがたいですよね…

まとめ

本記事の意義としては、ほぼコピペでサクッとbotを作れるというところに焦点を合わせて作成させていただきました。

ちょっとこれだけでは情報が足りないということでしたら、以下に参照すべきサイトも載せておりますので、ぜひぜひ見てみて下さい。

私はこのサイトの発信を少しでもできればいいなと思って今回botでの発信を行うためにTwitterのアカウントを開設しました。

これでどれだけ認知を上げられるかはまだわかりませんが、サイトに集客できるようになればいいなと思っています。

また、スクリプトについてご指摘等ございましたら、コメントなどいただけると嬉しいです。どうぞよろしくお願いいたします。

参照すべきサイト

PythonとTwitterAPIで作るブログ記事自動ツイートbot - Qiita
#はじめに自分の勉強用に運営している用語辞典的なブログがあるのですが、記事の数も増えてきて人様にみていただけるようになってきたので更なる発展のため、Twitterで宣伝してみることにしました。と…
PythonでTwitterしてみた - Qiita
#自己紹介じゅんじゅんというニックネームで、関西を拠点に活動しているフロントエンドエンジニアです。HAL大阪の新2回生です👍 (2016.4.25現在)よくstart up系イベントに行くので…
Pythonとcronでささっと自動ツイートBotを自作する|KEISUKE KURITA
『建築学科のための材料力学』というブログを運営している中で、記事の内容や力学公式などを自動でツイートしてくれるスクリプトを書きたいなーと前々から思っていたので、実装しました。この機能はPythonでささっと実現することができました。このnoteではその手順を書いていこうと思います。 自動ツイートBotの機能を決定する ...
【入門】cron(クロン)設定・書き方の基本 - カゴヤのサーバー研究室
Linuxサーバーの管理をしていると、プログラムを定期的に実行したい場合があります。そのようなときは、「cron」という機能をお試しください。ルールがやや複雑で Linuxサーバーの管理をしていると、プログラムを定期的に実行したい場合があります。そのようなときは、「cron」という機能をお試しください。ルールがやや複雑...

こんな記事も書いてます。よければ読んでいって下さい。

データサイエンティストの書評ブログ
趣味が読書くらいしかない駆け出しデータサイエンティストの書評ブログです。日々の勉強のアウトプットや趣味の読書のおすすめをしていきます。

コメント