使用excel vba进行自动谷歌查询:有人能做到这一点吗?

使用excel vba进行自动谷歌查询:有人能做到这一点吗?,excel,vba,Excel,Vba,社区新手,正在寻找一种使用excel vba自动执行google搜索的方法,然后解析标题下方的“大约49600个结果(0.78秒)”信息。我最近发现本教程似乎(或声称)正是实现了这一点。--> 有人能让这个工作吗 当我试着运行这个模块时,它会打开Google,但是加载循环会持续很长时间。如果有人对如何使这项工作的想法,任何帮助将不胜感激 将以下内容放入A2:A4 girafe rhino starbucks 运行下面的脚本 Sub Gethits() Dim url As String

社区新手,正在寻找一种使用excel vba自动执行google搜索的方法,然后解析标题下方的“大约49600个结果(0.78秒)”信息。我最近发现本教程似乎(或声称)正是实现了这一点。-->

有人能让这个工作吗


当我试着运行这个模块时,它会打开Google,但是加载循环会持续很长时间。如果有人对如何使这项工作的想法,任何帮助将不胜感激

将以下内容放入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:

@pnuts LOL-我喜欢[seo]标签描述中的“如果有人指示你在这里阅读此警告,请返回并删除你的问题”部分。此标签是垃圾箱火灾。你真棒,这就像一场梦。谢谢你的帮助:如果你能很好地定义你的问题,很容易定义一个好的答案。在玩了它之后,我试着在模块中运行一个包含200个左右关键字的大列表,但在运行了50到70个(不同的)关键字之后,我遇到了一个奇怪的错误。调试突出显示“Cells(i,2).Value=var1.innerText”作为错误,并显示一个对话框,其中显示“运行时错误'91':对象变量或未设置块变量”。奇怪的是,在出现一定数量的查询之前,它会运行得很好。我知道谷歌会在短时间内停止查询IP是否存在垃圾邮件,但我无法确定这是否是问题所在。有什么想法吗?我只是尝试了150次随机单词搜索,但我甚至没能找到一个。我现在在办公室。我猜公司的firewallblocs所有这些东西通常使用“下一步出错恢复”不是一个好主意,但在这种情况下,它可能没问题。将该行放在脚本顶部附近,然后重新运行进程。也许谷歌找不到你要找的东西,它什么也不返回,这导致了错误。那只是猜测。我不能确定,“下一步继续出错”除了阻止错误框弹出外,没有做什么。在第一个错误之后,它甚至不会在没有错误的情况下再次运行模块。我离开了以前的网络IP,在另一个网络IP上再次尝试,在错误再次发生之前,它允许大约45次查询。这让我相信,谷歌已经意识到了一个安全问题,并在这么多的查询之后封锁了IP。再次没有办法测试它,但这是我的猜测。如果您在网络上遇到类似的问题,而不是在没有运气的情况下尝试的问题,请告诉我。再次感谢。