VBS IE操作でBlogにログイン ブログの入力・登録処理
下記の質問をいただきました。
>https://www.so-net.ne.jp/blog/
>を自動で開き、IDとパスワードを入れて、ログインを押し、
>新規作成を押して、表示されるブログの記事作成画面で、
>タイトルと記事にEXCELで記載しておいた文章を入力させて、
>さらに、タグにもEXCELに記載しておいた文章を入力させて、
>タグ追加を行い、
>保存ボタンを押させたいです。
>どのようにしたら処理ができるのでしょうか?
ログイン
ログイン処理は、イロイロあるけど、
IDを探して、データセット、ボタンを押す感じかなぁ。
手前味噌サンプルだと
「ログイン」の検索結果一覧 - ken3memo (三流君)
http://d.hatena.ne.jp/ken3memo/archive?word=%A5%ED%A5%B0%A5%A4%A5%F3
から、探して、
VBS で IEを使用して楽天市場にログインしてみた - ken3memo (三流君)
http://d.hatena.ne.jp/ken3memo/20110721/1311244241
↑に探し方?調査方法が載っているので、参考にしてください。
ブログの入力、登録
ブログの登録もログイン同様に
IDやNameを探して、.valueにデータをセットしたり、
ボタンを.Clickでクリックしたりするパターンかなぁ。
ログイン後の画面なので、あまりサンプルが無いんだけど、処理で似ているのは、
「ブログの入力」の検索結果一覧 - ken3memo (三流君)
http://d.hatena.ne.jp/ken3memo/archive?word=%A5%D6%A5%ED%A5%B0%A4%CE%C6%FE%CE%CF
から、OCNのブログだけど、
5/27 IE操作 Access の フォームから ブログの入力フォーム(Webページ)へ転記する - ken3memo (三流君)
http://d.hatena.ne.jp/ken3memo/20090527/1243431779
でチラっと紹介されている、
2009-05-27 ソースをMDBに保存 と ブログへ登録
http://ie.vba-ken3.jp/sample/004/2009-05-27.html
↑が少し、参考になるかなぁ。※IDとかNameが違うので、そのまま使えないんだけど。。。
ログイン後の知りたい処理が書いてない 書きかけのコード
下記、ログイン後の知りたい処理、ブログの登録が書いていないコードです。
'VBS ログイン後、ブログへ登録、書きかけ '(※ http://ie.vba-ken3.jp/sample/004/2009-05-27.html を参考に自分のブログ用にアレンジしてください...) 'IEのオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.application") objIE.Top = 100 objIE.Left = 100 objIE.Width = 1024 objIE.Visible = True 'ページを開く(.Navigateで表示する。) objIE.Navigate "http://blog.so-net.ne.jp/" Wscript.Sleep 1000 '1000で1秒 '読み込み完了となるまで、ループする。 While objIE.ReadyState <> 4 Or objIE.Busy 'READYSTATE_COMPLETE = 4 Wscript.Sleep 100 '0.1秒待つ、1000で1秒 Wend Wscript.Sleep 1000 '1秒 'リンクを探す 'ログイン ボタンを探して押す '<a href="javaScript:login_url();"><img src="/_common/img/header/login_sts_login.gif" alt="ログイン" /></a> 'Aのタグを集める .getElementsByTagName("A")を使用 Set objA = objIE.Document.getElementsByTagName("A") 'ループで頭からhtmlが alt=ログイン を探す For n = 0 To objA.Length - 1 '※ HTMLのalt=ログインを探したいので、.InnerTextでもなく.Valueでもなく .OuterHTMLを使用 If Instr(objA(n).OuterHTML,"ログイン") > 0 Then 'HTML文字列の中から見つけたら objA(n).Click '見つけたINPUTタグのオブジェクトをクリック WScript.Sleep 1000 '1秒待つ 1000で1秒 Exit For End If Next 'HTMLから探すから全て .OuterHTMLを使用してもいいかなぁ(ほかの時も、いつもOuterHTMLでも) Set objINPUT = Nothing 'オブジェクト変数解放 '読み込み完了となるまで、ループする。 While objIE.ReadyState <> 4 Or objIE.Busy 'READYSTATE_COMPLETE = 4 Wscript.Sleep 100 '1000で1秒 Wend Wscript.Sleep 1000 '1000で1秒 'この先のページで、IDとパスワードをセットする。セット後またログインを押すんだけど・・・ 'h2>So-net ユーザID ログイン</h2> 'ユーザーID 'input type="text" name="SSO_COMMON_ID" class="inputStyle" value="例 yamadataro@ab3" size="30" maxlength="50" /> '↑name="SSO_COMMON_ID"があるので、これを使い objIE.Document.All("SSO_COMMON_ID").Value = "testID@xxx" 'IDをセットする '次は、パスワードのセット 'input type="password" name="SSO_COMMON_PWD" class="inputStyle" value="" size="30" maxlength="50" '↑これも、名前が付いているので、 name="SSO_COMMON_PWD"を使う objIE.Document.All("SSO_COMMON_PWD").Value = "123456" 'パスワードをセットするをセットする 'ログインボタンを押す 'input name="" type="image" src="/blog/common/images/login/button_login.gif" value="ログイン" id="loginformsubmit" '↑ログインの文字を探してもいいけど、id="loginformsubmit" があるので、これをクリックする objIE.Document.All("loginformsubmit")(0).Click '指定したIDをクリック '読み込み完了となるまで、ループする。 While objIE.ReadyState <> 4 Or objIE.Busy 'READYSTATE_COMPLETE = 4 Wscript.Sleep 100 '1000で1秒 Wend Wscript.Sleep 1000 '1000で1秒 '次に、この先のページで、ブログのタイトルとか、セットしたりするんだけど・・・ 'タイトルセット '本文セット 'タグを処理 '書き込みボタン? or 送信ボタンを押す '書き込み完了を待つ 'ログアウト処理 'ログアウトボタンを押して、ログアウトする(これは無くてもいいかも) 'IEを閉じたり、後始末 'objIE.Quit 'IEを閉じたり、後始末をする
終わりのあいさつ
ログイン先が不明なので・・と言い訳して、
中途半端なコードを紹介。
何かの参考となれば、、、
いつものように 逃げるように退散する三流プログラマーでした。