概要: |
リンク 分類:
[Document(文章)からデータを取得]
/ [Form入力処理]
/ [Linkリンク情報]
/ [Image画像情報]
/ [Frameフレーム処理]
サンプル:
[IEを使ったVBAのサンプル]
/ [小さなVBAでIE操作のコード]
やっと、下記、メルマガで発行した内容です。何かの参考となれば幸いです。
過去のメルマガ[IE操作系の記事一覧]もヨロシクです。
こんにちは、三流プログラマーKen3です。 今回は、 IEで表示したURLのリンク先を取得したい です。/* * 1.今回のキッカケ */
前回の発行で、いろいろとIEの中身をいやらしく探ってたので、 自動巡回ソフト?の前準備、探りとして、 今回は、IEで表示したページのリンクを探りたいと思います。 将来的には、自動エロ画像収集巡回、自動クリック、自動チケットアタック を作りたいですね。 えっ、動機が不純だって? 不純な動機ほど気合が入るんですよ(それは変わり者のKen3だけかな?)/* * 2.またまた、IEオブジェクトの中身を探れ(手ごわい彼女の心の中?) */
[No.52 InternetExplorer.application .document.body.innerText] ( http://www.ken3.org/backno/backno_vba11.html#52 を参照) では、 彼女(オブジェクト)の中身を探る方法を少し書きました。 それにしても、階層が深いです。 テーブル系のオブジェクトを探すが、なかなか見つからない。 (女の子じゃなくって、IEの心の中は複雑なのね、、、) 前回と同じ台詞でつまらないよ。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 探り方がわかれば、あとは応用なので。 街中のナンパ同様、一回成功すれば、あとは応用なので と、成功したこと無い私が書いても説得力無いけど(笑) いつもの、馬鹿な前置きは置いといて、 いやらしい目で頭から探っていくと(ほんとは真剣な目ですよ) デバックで止めて、変数の中身を見ます。 *ウォッチ式を追加して、確認します。 ? objIE.Document.links(1).outertext [ 掲示板 ] ? objIE.Document.links(1).outerHTML <A href="http://www.ken3.org/cgi-bin/bbs/vba/wforum.cgi" target=_blank>[ 掲示板 ]</A> .href .outertext .outerHTMLが使えそうなので、 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今回使ってみます。 *さらっと書いてるけど、ここまでたどり着くのにかなりかかっている(笑) これを使えばなんとかできそうです。/* * 3.単体テストが完了、作成してみる */
単体のオブジェクト、プロパティの確認が終わったので、作成に取りかかります。
Sub ken3_url() Dim objIE As InternetExplorer Dim time10 As Date Dim strURL As String Dim i As Integer On Error GoTo EMSG Rows("13:1000").Select '結果の表示エリアをクリアする Selection.Delete Shift:=xlUp Set objIE = CreateObject("InternetExplorer.application") objIE.GoHome objIE.Visible = True Do While objIE.Busy = True '起動まで待つ DoEvents Loop nYLINE = 10 '10行目からチェックスタート Cells(nYLINE, 1).Select DoEvents Cells(nYLINE, 2) = Now() 'テストで時間を代入 strURL = Trim(Cells(nYLINE, 1)) 'URL代入 objIE.Stop '読み込み停止(意味無いけど) objIE.Navigate "" & strURL 'アドレスを渡し表示する '読みこみ完了まで待つ '20秒後を計算して、待つ time10 = DateAdd("s", 20, Now()) Do While objIE.Busy = True DoEvents If time10 < Now() Then Exit Do End If DoEvents Loop If objIE.Busy = True Then Cells(nYLINE, 4) = "読み込みに失敗しました" MsgBox "読み込みに失敗しました" End If 'リンクを探す nYLINE = 13 'セット位置を代入 'リンク数分まわす For i = 0 To objIE.Document.links.Length - 1 Cells(nYLINE, "A") = "'" & objIE.Document.links(i).outerText Cells(nYLINE, "B") = "'" & objIE.Document.links(i).href Cells(nYLINE, "C") = "'" & objIE.Document.links(i).outerHTML nYLINE = nYLINE + 1 'セット位置を+1する Next i objIE.Quit 'IEを閉じる MsgBox "終了しました" Exit Sub EMSG: Cells(nYLINE, 2) = "ERR" objIE.Quit ' MsgBox "errが発生しました" Exit Sub End Sub |
三流解説を読んでいただき、どうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。
[三流君 VBAでWebBrowser IEを操作する] / [三流君 VBAで楽しくプログラミング] / [AB型の変わり者 三流プログラマー Ken3 三流君Top]
大分類:[Document.Forms(入力処理)]
/ [Document.Links(リンク情報)]
/ [Document.Images(画像情報)]
/ [Document.Frames(フレーム処理)] | |
F1でヘルプを見たり、デバック時にDebug.Print使ったり、イミディエイト ウインドウで簡単な確認したり。 項目別に↓にプログラマーの本音?それとも建て前?的な記事をまとめました。お探しのジャンルを選択してください。 項目別に↓に人気の記事をまとめてみました。お探しのジャンルを選択してください。 Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など Blog:[三流君の作業日記]/
[objIEを使用したサンプルコードを見る]/
広告-[通販人気商品の足跡] |
三流プログラマーのKen3 が 皆さんの質問にお答えします
と カッコつけて言っても、実力不足ですべての質問に回答することはできないのが現実なのですが、できる範囲で 三流的な逃げ手 や 解決方法 を探します(回答します)。
感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。