Twitterbotをpythonで作る|ブログ記事を自動でTwitterに投稿する方法

Pocket

「書いたブログ記事を投稿するのが面倒だ。」
「定期的に自動で投稿してくれたらなあ。」
このように思ったことはないでしょうか?

Pythonを使えば、Twitterブログ記事を自動投稿してくれる仕組みを作ることができます。
今回はブログ運営者向けに作り方を解説していきます。

この記事でわかること
  • Twitter APIの取得方法
  • ブログ記事自動投稿のPythonコード

またブログの自動投稿の仕組みの作成以来も受けています。
Twitterまたはメールで依頼してください。

スポンサードサーチ

Twitterbotをpythonで作る大まかな手順

TwitterbotをPythonを作る大まかな手順
  • Python スクレイピングをする
  • Twitter APIの取得・利用

大まかな流れとしてはPythonのスクレイピングを用いて、取得したブログ記事のURLをTwitterと連携し、投稿できるように設定します。
その際にTwitter APIの申請が必要です。

Twitterbotをpythonで作る手順①:Python スクレイピングをする

まずはPythonスクレイピングをして記事のURLを取得します。
どのWebページから情報を取得するかにより、スクレイピングの難易度は変わります。
今回の例の場合、簡単であった例を紹介するため、あなたのブログ記事のURLを取得するのに最適な方法かどうかはわかりません。
この記事ではブログのサイトマップを利用したWebスクレイピングを行い、記事のURLを取得します。

スクレイピングとはWeb上の情報を取得し加工することです。
スクレイピングを用いると、ニュース記事のタイトルやURLなどを取得することができます。

Twitterbotをpythonで作る手順②:Twitter APIの取得・利用

Pythonでスクレイピングした情報をTwitterに投稿するにはAPIの取得が必要です。
APIを取得するためには理由や目的を英語で記載することが求められます。

TwitterのAPI取得に関してはこちらの記事を参考にしてください。

実際私もTwitter APIの取得を行いました。
そこまで難しくはありませんが、取得のための審査が入るため、数日の時間が必要でした。
英語が苦手でなければ申請自体は15~30分程度で完了します。

Twitterbotをpythonで作るためのコード見本

今回は[yokablog.py]と[tweet.py]という2つのファイルを用意しました。
[yokablog.py]はYokaBlogをスクレイピングするためのファイル、
[tweet.py]はスクレイピングした情報をTwitterに投稿するためのファイルだと認識してください。

次に章からTwitterbotをpythonで作るための具体的なコードを解説していきます。

Twitterbotをpythonで作るためのコードを解説①:XMLサイトからスクレイピング

BeeutifulSoupを用いてスクレイピングを行います。

getの後にはスクレイピングを行いたい、URLを記載します。
今回はYokaBlogのサイトマップから情報を取得するため以上のURLを使用します。

スクレイピングするWebページがHTMLの場合[html.parser]を使用しますが、今回はXMLのサイトであるため[lxml]と記載しています。

Twitterbotをpythonで作るためのコードを解説②:ランダムで記事のURLを取得する

まず最初にurlsをリスト化します。
しかしリストの中には何も入れません。

次に取得したXMLサイトから[‘url’]のタグを持つものを全て[url]という言葉で定義します。
find_allを使う場合は繰り返しの処理が必要なためfor 構文を使用する必要があります。

そしてにurlタグの中でlocタグを持つものを取得し、タグを除いた部分すなわちURLの箇所のみを先ほど作ったリストの中に追加(.appendでリストへの追加が可能)します。

urlsという名前で作ったリスト(この段階ではすでにURLを取得済み)をランダムで選択するためのコードです。
ここではそれを[post_article]とします。

ランダムで何かを選択する場合はrandomモジュールを使用する必要があるため、[import random]と書かなければなりません。

Twitterbotをpythonで作るためのコードを解説③:Twitter投稿のための準備

Twitterに投稿するためのモジュールを[import tweepy]と書くことで使用しています。
[from yokablog import post_article]では、yokablogというファイルの中からpost_articleと定義したものを引っ張って来ています。

[import schedule],[import time]この二つはそれぞれ定期実行を行うためのモジュールと、時間データにアクセスするためのモジュールですので、インポートしなければなりません。

Twitterbotをpythonで作るためのコードを解説④:Twitterに投稿する

Twitterに自動投稿を行うためにはAPI申請を済ませておかなければなりません。
API申請が無事済めば、Twitterの開発者アカウントから

  • consumer_key
  • consumer_secret_key
  • access_token
  • access_token_secret

を取得することができます。

これらを用いて、Twitterとの連携を行いましょう。

[.update_status(“投稿したい言葉”)]このコードを書くことでTwitterに言葉を投稿することができます。
今回はyokablog.pyファイルにある、post_articleすなわちスクレイピングしたURLの中からランダムに選んだ一つをTwitterに投稿しています。

Twitterbotをpythonで作るためのコードを解説④:定期実行する

インポートしたscheduleモジュールを利用して、毎日19:01ふんにTwitterに投稿するように設定しています。

これは一度処理が実行された場合に1秒間停止をして再度同じ処理を行うためのコードです。
これを書かなければ毎日19:01と設定していても、一度しか処理が行われません。

Twitterbotをpythonで作る際の注意点

Twitterbotをpythonで作る際の注意点
  • Pythonの環境構築の準備が必要
  • 上のコードはPCが起動している時しか実行できない

Pythonの環境構築の準備が必要

もしあなたが今までプログラミングをしたことがなければ、環境構築から始めなければなりません。
具体的な環境構築の方法はProgateさんの記事がわかりやすいです。
こちらを参考にしてください

上のコードはPCが起動している時しか実行できない

ScheduleモジュールはPCをシャットダウンしたり再起動すると、実行が止まってしまいます。
もし、PCの電源を切ってる時もTwitterへの投稿を行い時は、仮想サーバー(VPS)やherokuを利用しなければなりません。

おすすめの仮想サーバーは

  • GMOクラウドVPS
  • ConoHa VPS

などです。

herokuとはアプリケーションを実行するために必要な環境が備わったレンタルスペースと理解してください。
herokuを使うことでPCの電源のON/OFFに関わらず、実行することができます。

Twitter botをpythonで作る方法まとめ

この記事のまとめ
  • Pythonスクレイピングを使えばブログ記事をTwitterに自動投稿が可能
  • PCの電源を切った状態でも実行させる方法あり

スポンサーリンク