标题:利用excel批量查询搜索关键词结果页面的网站排名

-------------------------------------------------------------------------------------------------------------------------------

时间:2011/12/9 1:54:49

-------------------------------------------------------------------------------------------------------------------------------

内容:

加入了很多人性化的修改

在a1单元格输入你要显示每个关键词的网站结果数量 从a2开始 每行都输入一个关键词

然后在vba编辑器里面输入代码

再保存 前台再拉一个按钮

里面有几个知识点

一个是利用录制宏代码 将输入的一列关键词 转成一行  符合一般习惯

利用counta里计算一行关键词的数量 count是计算数字单元格数量 counta是全部的

利用cells函数来定位 位置

Sub test()
    Dim tmp() As String, i As Integer, g As Integer, j As Integer, arr() As String, xmlhttp As Object, M&
   
        Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
            
    j = WorksheetFunction.CountA([1:1])
  For g = 2 To j
   
    Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
    With xmlhttp

        .Open "get", "http://www.baidu.com/s?wd=" & Cells(1, g) & "&pn=0&rn=" & Cells(1, 1), False
        .send
        tmp = Split(.responsetext, "<table")
    End With
    For i = 0 To UBound(tmp)
       If tmp(i) Like "* id=""#*""*" Then
          If Not Split(tmp(i), " id=""")(1) Like "####*" Then
             M = M + 1
             ReDim Preserve arr(1 To M)
             arr(M) = Split(Split(tmp(i), "http://")(1), "/")(0)
          End If
       End If
    Next
    Erase tmp
   Cells(2, g).Resize(UBound(arr), 1) = Application.Transpose(arr)
    Erase arr
    Set xmlhttp = Nothing
     M = 0
   
  Next

End Sub

就可以了

加入了很多人性化的修改

在a1单元格输入你要显示每个关键词的网站结果数量 从a2开始 每行都输入一个关键词

然后在vba编辑器里面输入代码

再保存 前台再拉一个按钮

里面有几个知识点

一个是利用录制宏代码 将输入的一列关键词 转成一行  符合一般习惯

利用counta里计算一行关键词的数量 count是计算数字单元格数量 counta是全部的

利用cells函数来定位 位置

Sub test()
    Dim tmp() As String, i As Integer, g As Integer, j As Integer, arr() As String, xmlhttp As Object, M&
   
        Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
            
    j = WorksheetFunction.CountA([1:1])
  For g = 2 To j
   
    Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
    With xmlhttp

        .Open "get", "http://www.baidu.com/s?wd=" & Cells(1, g) & "&pn=0&rn=" & Cells(1, 1), False
        .send
        tmp = Split(.responsetext, "<table")
    End With
    For i = 0 To UBound(tmp)
       If tmp(i) Like "* id=""#*""*" Then
          If Not Split(tmp(i), " id=""")(1) Like "####*" Then
             M = M + 1
             ReDim Preserve arr(1 To M)
             arr(M) = Split(Split(tmp(i), "http://")(1), "/")(0)
          End If
       End If
    Next
    Erase tmp
   Cells(2, g).Resize(UBound(arr), 1) = Application.Transpose(arr)
    Erase arr
    Set xmlhttp = Nothing
     M = 0
   
  Next

End Sub

就可以了