我正在尝试在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中继续计数,直到它到达数据的末尾,这就是我要找的东西。
答案 0 :(得分:2)
尝试:
git init
答案 1 :(得分:1)
看起来好像每个网页都使用几乎完全相同的网址,只有页面=& I更改为page = 2&,page = 3&amp ;,依此类推,因此您可以使用计数器来增加网址并循环遍历所有页面,直到没有任何页面,或者让它单击右箭头按钮转到下一页并让它刮到html中找到的那样:
<a href="pleaseWait_Portal.asp?redirectto=delinquency_results.asp&SID=&county_1=&status=NS&send_date=12/11/2015&page=4&search_1.x=1"><img src="portal/images/singlearrowrightbutton.gif" border="0" alt="Next"></a>
此外,请确保您创建一个日期变量来替换网址中的日期,或者您只是一遍又一遍地抓取同一天。