拉/刮具有多个结果页面VBA

时间:2015-12-14 16:44:42

标签: excel vba excel-vba excel-2010

我正在尝试在Excel中创建一个宏,以便我可以从具有多个结果页面的网站中删除数据。我似乎无法弄明白。我只能从第一页获得要显示的信息,但是重复,因为我试图编写它以转到下一页。这就是我将结果复制的原因。这是我到目前为止的代码。

Sub QueryDelinquency()
Dim nextrow As Integer, i As Integer
Application.ScreenUpdating = False
Application.DisplayStatusBar = True
For i = 1 To 5 'this is the page range to be captured.
    Application.StatusBar = "Processing Page " & i
    nextrow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;https://www.myfloridalicense.com/delinquency_results.asp?SID=&page=&i &county_1=AL&status=NS&send_date=12/11/2015&search_1.x=1" & i, _
        Destination:=Range("A" & nextrow))


        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "10"
        .WebPreFormattedTextToColumns = False
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    ThisWorkbook.Save
Next
i = i + 1
Application.StatusBar = False
End Sub

我希望它能够提取所有数据。我知道的网站上的这一特定搜索有超过60个结果页面。任何帮助将不胜感激。假设此搜索结果中有100个页面。如果有一种方法可以让页面部分在url中继续计数,直到它到达数据的末尾,这就是我要找的东西。

2 个答案:

答案 0 :(得分:2)

尝试:

git init

答案 1 :(得分:1)

看起来好像每个网页都使用几乎完全相同的网址,只有页面=& I更改为page = 2&,page = 3&amp ;,依此类推,因此您可以使用计数器来增加网址并循环遍历所有页面,直到没有任何页面,或者让它单击右箭头按钮转到下一页并让它刮到html中找到的那样:

<a href="pleaseWait_Portal.asp?redirectto=delinquency_results.asp&amp;SID=&amp;county_1=&amp;status=NS&amp;send_date=12/11/2015&amp;page=4&amp;search_1.x=1"><img src="portal/images/singlearrowrightbutton.gif" border="0" alt="Next"></a>

此外,请确保您创建一个日期变量来替换网址中的日期,或者您只是一遍又一遍地抓取同一天。