VBAでGoogle検索の上位にあるURL部分(添付赤枠部分)を抜き出そうとしております。
下記の様に、コードを書いてみましたが、★印、●印あたりが不明で望む結果が出力されません。
コードの不足部分を、どのようにしたら出力できますか?
Sub Google検索()
Dim ie As Object 'IEオブジェクト
Dim kensakugyou As Long
Dim kensakuretu As Long
Dim i As Long
Dim r As Long
Dim elm As Object
For i = 1 To 5
kensakugyou = i
kensakuretu = 1
'IEを起動する
Set ie = CreateObject("InternetExplorer.application") 'IEのオブジェクトを作る
ie.Visible = True '見えるようにする
ie.Navigate "http://google.co.jp" '.Navigate で 指定したURLを開く
wait ie
ie.document.forms(0).Item("q").Value = Cells(kensakugyou, kensakuretu)
ie.document.forms(0).submit
wait ie
For Each elm In ie.document.getElementsByClassName("★★★★")
Range("B" & r).Value = elm.getElementsByClassName("●●●●")(0).innerText
r = r + 1 '表示行+1
Next
ie.Quit
Next
End Sub
Sub wait(ByVal ie As Object)
Do While ie.Busy = True
DoEvents
Loop
Do While ie.document.ReadyState <> "complete"
DoEvents
Loop
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ご質問の内容にある
>Google検索の上位にあるURL部分(添付赤枠部分)を抜き出そう
は、取得してみると、場所が違いますね。その一つ上の行に隠れているリンクが本物だと思います。ご要望があくまでも、赤枠の部分だったら私の解釈が間違えたことにはなりますが、そこをとっても意味がなかったものですから。
一行目は何か書き入れてください。
URL とサイト名?
ChildNodes は、分かち書きしていますが、一本にすると、どうもハングします。
With objIE
Set rs = .Document.getElementsByClassName("r")
If rs.Length = 0 Then Exit Sub
For i = 1 To rs.Length
Set obj = rs(i - 1).ChildNodes
hr = obj(0).href
Cells(i + 1, 1).Value = hr
Cells(i + 1, 2).Value = rs(i - 1).innerText
Next i
End With
No.1
- 回答日時:
こんにちは。
検索結果で生成されるHTMLをご覧になればわかると思いますが、ひとつの項目は以下のような構成になっています。
(長い属性は「~~」等で省略してあります)
ご質問の表示部分は、クラス_Rmのところにあたると思われますので、クラス名_Rmで収集すれば該当部分の要素を直接収集することが可能だと思います。
返り値は要素リスト(=配列に似たオブジェクト)になりますが、個別の要素を参照する際は添字(0、1、2…)で参照可能です。
ただし、この表示内容はHTMLであって、必ずしも、ご質問のタイトルにあるようなURLではないものと思います。
*********** 以下提示例の一項目分のHTML *************
********* (インデントは全角空白にしてあります) *******
<div class="g">
<div class="rc" data-ved="~~" data-hveid="41">
<h3 class="r">
<a nmousedown="~~" href="https://ja.wikipedia.~~">○ - Wikipedia</a>
</h3>
<div class="s">
<div>
<div class="f kv _SWb" style="white-space:nowrap">
<cite class="_Rm">
https://ja.wikipedia.org/wiki/△□
<b>○</b>
</cite>
<div class="action-menu ab_ctl">
<a id="am-b5" class="~~" jsaction="~~" aria-label="結果の詳細" href="#">
<span class="mn-dwn-arw"></span>
</a>
<div class="action-menu-panel ab_dropdown" data-ved="~~" jsaction="~~" tabindex="-1" role="menu">
<ol>
<li class="action-menu-item ab_dropdownitem" role="menuitem">
<a class="fl" onmousedown="~~" href="https://webcache.~~">キャッシュ</a>
</li>
<li class="action-menu-item ab_dropdownitem" role="menuitem">
<a class="fl" href="/search?~~">類似ページ</a>
</li>
</ol>
</div>
</div>
</div>
<span class="st">
株式会社△□
<em>○</em>
(みよまる、340)は、広島市安佐南区に本社を置く、事務用機械器具販売や内装工事などを専門とする株式会社である。 目次. [非表示]. 1 概要; 2 社名; 3 創業者; 4 事務所; 5 外部リンク. 概要[編集]. 創業者の福田剛が1970年に元になる会社を ...
</span>
</div>
</div>
</div>
</div>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
ExcelVBA修正のお願い
-
エクセルのマクロについて教え...
-
VBAコードについて教えてくださ...
-
[vb.net] 起動したFrom2を閉じ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBA 別ブックからコピペしたい...
-
重複確認
-
Excel(M365) Vlookup/セル反転(...
-
エクセルのVBAコードについて教...
-
コードを直していただきたいで...
-
{ CONTROL Forms.Label.1}が...
-
マクロの記録を使用したマクロ...
-
Excel VBA 定義されたプロージ...
-
VBA 複数の各シートに行を追加...
-
配列のペースト出力結果の書式...
-
VBA実行後に元のセルに戻りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XPath指定方法について(phpで)
-
エクセル マクロ 複数のhtml...
-
DreamweaverCS4で、テキスト...
-
ヤフオク エクセル VBA 通常...
-
HP作成のレイアウトで、ルーズ...
-
VBAでGoogle検索の上位にあるUR...
-
中央にそろえる。Dreamweaver8
-
(再質問)エクセルのマクロボ...
-
collection型を引数にしたファ...
-
プログラミング
-
新しいパソコンのネット設定な...
-
汎用機のJCLの入門書ありま...
-
iText セル内での自動改行について
-
mとnを入力 mからnまでを加算し...
-
アコーディオンメニューにする...
-
コンソール画面のクリアの方法
-
if else文のフローチャート
-
PCとモバイルで同一URLのWebサ...
-
【jQuery】MixltUPの複数フィル...
-
Progateの入力画面で使えるショ...
おすすめ情報