ゆとりSEは副業がしたい

ゆとりSE

RPAやPythonをはじめとした情報系の発信やガジェットの紹介などがメインです

【UiPath】アフィリエイト広告の張り替えを自動化して、はてなブログ運営で楽がしたい。

参考書籍

アフィリエイト広告の張り替えが面倒くさい

当ブログでは各種アフィリエイトサービスから、何となくIT関連のアフィリエイト広告を気まぐれに張り付けているのですが、これらの広告は有効期間があったり、新しい広告が出ていたりします。 その際は広告を張り替えるのですが、これらのアフィリエイト広告は手動でリンクを張り付けているので、過去の記事の分も更新しようとするととても時間がかかります。 そこで今回はUiPathを使って広告の張り替えの自動化を行いました。

全体の構成

ワークフローの全体像は以下になります。

f:id:oichiki:20210111223801p:plain
全体
実行の流れとしては、入力ダイアログに広告リンクをString型の変数として入力し、記事管理ページにあるそれぞれの記事の広告を、入力したものに更新していく形になっています。 当ブログの記事は目次の上に一つアフィリエイト広告を挿入する形としており、更新対称の広告はこの1つになります。

記事のページ情報を取得

記事管理ページにある各記事をクリックするためにセレクタに入力する情報が必要であるため、データスクレイピングを用いて記事タイトルを全取得します。

f:id:oichiki:20210111225858p:plain
記事ページの情報を取得
データスクレイピングによって記事タイトルをデータテーブルとして取得し、各行ごとに繰り返して処理していきます。

記事内容の更新

記事内の広告を実際に更新する処理は以下のように実装しました。

f:id:oichiki:20210111230626p:plain
広告の更新
テキストの更新内最初のの代入では、記事全体の文字列を改行で分割して、String型の配列にしています。textListは最終的に本文として出力するためのリストです。 この配列に対して要素を1つ1つ確認を行い、文字列が目次と該当したら([:contents]と一致する)そのindexを取得し、textListの最終行を新しい広告リンクの変数と入れ替えます。(目次のindexに該当する箇所のチェックを行っている際は、リストの最終要素が広告リンクとなっている)確認において、空白でない場合はtextListに要素を追加していきます。

更新後の処理

広告の更新処理が完了したら、また記事管理ページに遷移し次の記事の更新を進めていきます。 すべての処理が完了したら、タブを閉じるアクティビティによってブラウザを閉じて終わりです。