top of page
検索

Selenium Basic 使ってみた-(インスタグラムの自動DM発行!)

更新日:2021年8月12日

こんにちは。

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ブラウザでのアクセス前提としています)


全体の流れは次のとおり。

  1. Seleniumの起動

  2. インスタグラムへのログオン

  3. 宛先の追加

  4. メッセージ発信

  5. 宛先の削除


次の章からは、各工程の詳細な手順を紹介していきます。



■ 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)リストを元に、「宛先の追加」~「宛先の削除」までを繰り返す…ことで立派ないい感じ♪のツールに仕上がるかと。^^


次回以降も、苦労した点を備忘録しようと思います。

閲覧数:213回0件のコメント

最新記事

すべて表示
bottom of page