こんにちは。
Selenium Basicの勉強がてら色々なサイトを操ってます(笑)
その途中経過として、最も成功しているSNSの1つ、インスタグラムにてDMを自動発行するツールを作ってみました!
■ 動作環境
OS: Windows 8.1(64ビット)
Excel: 2013(32ビット)
Chrome: 86.0.4240.198
Selenium Basic: v2.0.9.0
■ 全体処理の流れ
基本的な考え方含め、DMを発行するための一連の流れを整理します。
(ちなみにExcel大前提なので、Windows PC上/Webブラウザでのアクセス前提としています)
全体の流れは次のとおり。
Seleniumの起動
インスタグラムへのログオン
宛先の追加
メッセージ発信
宛先の削除
次の章からは、各工程の詳細な手順を紹介していきます。
■ Seleniumの起動
Selenium BasicでガシガシWeb操作していくため、まずは初期処理を済ませます。
※これ以降も同様ですが、「m_」で始まる英語大文字の変数名みたいな名称は、何れも私が別途定義している定数です。
最近は、DimでNewせず、SetステートメントにてNewする明示的な方式を徹底しています。
「selenium_startEx」は自前の関数、Selenium起動のお手伝いをします。
■ インスタグラムへのログオン
本当は、ログオン情報をWebブラウザへ記憶させ、Webブラウザ起動時にユーザプロファイルを指定することで自動ログオンさせるべきですが、勉強かねてマニュアル運転でいきまーす!^^
「selenium_getEx」は自前の関数、任意URLへのアクセスをお手伝いします。 (指定のタイトルウィンドウが表示されるまでグルグルします) (トップ頁などへのアプローチではなく、横着してDM発行画面へダイレクトにアクセスすれば、自ずとログオン画面に遷移します^^)。
状況によっては、↓こんな画面が表示されますので、軽くあしらいます。^^
「ログイン情報を保存しますか?」要素を存在確認して、見つかったら「後で(もしくは「情報を保存」)」要素の存在確認をもって処理を進めます。
「selenium_waitEx」は自前の関数、任意要素が準備されるまで待機をお手伝いします。
状況によっては、↓こんな画面が表示されますので、軽くあしらいます。^^
「お知らせをオンにする」要素を存在確認して、見つかったら「後で(もしくは「情報を保存」)」要素の存在確認をもって処理を進めます。
■ 宛先の追加
メッセージ機能にて、DMを発行する対象(宛先となるアカウントID)を追加していきまーす!^^
「宛先」欄に値を設定する際、本来であれば Clearメソッド + SendKeysメソッドなのですが、何でか Clearが効かないので、こんなまどろっこしいやり方に💦 (Clear/SendKeysコンビでは、この処理を何アカウント分も繰り返すようなロジックにした途端、アカウント名がどんどん連結されていってしまいました…。)
候補リストからのアカウント選択は、もっと繊細に判別したほうが良いかも…💦 (「アカウントが見つかりません」が返ってきたり、別のアカウントIDが候補に挙がってきたりしますので。)
■ メッセージ発信
アカウントIDが設定できたらメッセージを発信してみまーす!^^
複数行のメッセージを一度に送信しようとしたらこうなった💦 (もっといい方法が見つかったら改めて備忘録します♪)
■ 宛先の削除
とりあえずインスタDM発行ツールとしてはここまでの説明で十分だと思います。
しかし、この先には複数アカウントへ自動的にDMを発行し続ける…という夢のようなツール像がありますので、宛先を削除する処理も備忘録しておきますね。
あとはwdの後片付けをするのみ…。
■ まとめ
いかがでしたでしょうか?
これでインスタグラムもSeleniumで操作できそうな感触が掴めてきましたよね。笑
あとは、対象の宛先(アカウントID)リストを元に、「宛先の追加」~「宛先の削除」までを繰り返す…ことで立派ないい感じ♪のツールに仕上がるかと。^^
次回以降も、苦労した点を備忘録しようと思います。
Comments