アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

「VBAでGoogle検索の上位にあるUR」の質問画像

A 回答 (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
    • good
    • 0

こんにちは。



検索結果で生成される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>
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!