Googleでvbaを使用して複数のサイトのデータを解析するコードを作成しました。検索が何であれ、タグ要素["h3"と "a"]を削り取ることができます。しかし、私が期待していることがあれば、検索の名前や電話番号を解析したいと思います。助けを前にありがとう。vbaを使用して複数のサイトからデータを掻き集める
Sub GoogleSearch()
Dim http As New MSXML2.XMLHTTP60, html As New HTMLDocument, hmm As New HTMLDocument
Dim topics As Object, post As Object, link As Object, posts As Object
Dim url As String, z As String
Dim i As Long, LRow As Long
LRow = Range("A" & Rows.Count).End(xlUp).Row
For i = 3 To LRow
url = "https://www.google.co.in/search?q=" & Cells(i, 1)
http.Open "GET", url, False
http.setRequestHeader "Content-Type", "text/xml"
http.send
html.body.innerHTML = http.responseText
Set topics = html.getElementById("rso")
Set post = topics.getElementsByTagName("H3")(0)
Set link = post.getElementsByTagName("a")(0)
Cells(i, 2) = link.innerText
Cells(i, 3) = link.href
z = link.href
http.Open "GET", z, False
http.send
hmm.body.innerHTML = http.responseText
Set posts = hmm.getElementsByClassName("phone")
If Not posts(0) Is Nothing Then
Cells(i, 4) = posts(0).innerText
Else
Cells(i, 4).Value = "Phone Not Found"
End If
Next i
End Sub
お返事ありがとうございました。私はあなたの答えを見るまで、私が一回の呼び出しで必要な情報を得ることについて真剣に混乱していました。さまざまなサイトで、私はここでやったのと同じ質問をする人々に気づいた。この時点で深い掘削の基礎を理解できましたが、forループで推進されるエラーハンドラを作成すると、単一のサブルーチンや呼び出しで最高で5〜10のサイトを削るために働くことができることを知りたいのです。リストに100以上の検索が含まれています。もう一度ありがとうございました。 – SIM
エラーなしで実行される単純なハンドラで小さなリビジョンを作成し、 "phone"クラスが見つからないURLを特定する必要があります。うまくいけば、これはあなたに役立ちます:) –
私の厄介なコードにあなたの種類のタッチのおかげでサー。おそらく、あなたはそれを飛行機に書きました。なぜなら、そこには些細な間違いがあったからです。私はすでにそれを修正しました。 – SIM