首页 文章

使用 excel vba 自动进行 Google 查询:有人可以使用它吗?

提问于
浏览
-1

社区新手,并寻找一种使用 excel vba 自动执行 google 搜索的方法,然后解析标题下方的“大约 49,600 个结果(0.78 秒)”信息。最近,我发现本教程似乎(或声称)完成了这一任务。 -> http://yodalearning.com/tutorials/perform-google-search-internet-explorer-using-excel-vba-excel-vba/

谁能得到这个工作?

当我尝试运行该模块时,它会打开 Google,但对于负载循环却没有任何作用。如果有人对如何使它起作用有任何想法,将不胜感激!

1 回答

  • 0

    将以下内容放在 A2:A4

    girafe
    rhino
    starbucks
    

    运行以下脚本。

    Sub Gethits()
        Dim url As String, lastRow As Long
        Dim XMLHTTP As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
        Dim start_time As Date
        Dim end_time As Date
        Dim var As String
        Dim var1 As Object
    
        lastRow = Range("A" & Rows.Count).End(xlUp).Row
    
        Dim cookie As String
        Dim result_cookie As String
    
        start_time = Time
        Debug.Print "start_time:" & start_time
    
        For i = 2 To lastRow
    
            url = "https://www.google.com/search?q=" & Cells(i, 1) & "&rnd=" & WorksheetFunction.RandBetween(1, 10000)
    
            Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
            XMLHTTP.Open "GET", url, False
            XMLHTTP.setRequestHeader "Content-Type", "text/xml"
            XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0"
            XMLHTTP.send
    
            Set html = CreateObject("htmlfile")
            html.body.innerHTML = XMLHTTP.ResponseText
            Set objResultDiv = html.getelementbyid("rso")
            Set var1 = html.getelementbyid("resultStats")
            Cells(i, 2).Value = var1.innerText
    
            DoEvents
        Next
    
        end_time = Time
        Debug.Print "end_time:" & end_time
    
        Debug.Print "done" & "Time taken : " & DateDiff("n", start_time, end_time)
        MsgBox "done" & "Time taken : " & DateDiff("n", start_time, end_time)
    End Sub
    

    Mozilla:
    在此处输入图片说明

相关问题