使用VBA在Excel中刮取分页站点的所有页面

时间:2015-04-15 20:22:58

标签: excel-vba web-scraping vba excel

我试图在Excel 2013中使用VBA从县网站上抓取网页数据。我是新手,感觉我的代码甚至不值得发帖,但我希望我可以通过我的一般方法得到一些帮助。

示例搜索字词引导我进入following URL

如果我点击"下一步",则需要here

我一次仅限于20个搜索结果,它看起来像" Next"按钮会将我带到类似的网址,但使用"& startrow ="参数设置为大于上一页的20。

如果我想复制所有页面中的所有数据,我是否需要关注"& startrow ="为了正确循环?如果是这样,最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

我会循环和刮擦,直到我再也找不到Next按钮,这意味着:

buttonFound = True '<-- False if we don't find --> break the loop
While buttonFound '<-- while we have a "Next" button

'scrape data then click next

Set allLinks = ie.getElementsByTagName("a")
buttonFound = False
For Each btn In allLinks '<-- search the button
    If btn.innerText = "Next"
        buttonFound = True '<-- if you find it, you will have to look for it next time
        Set btnNext = btn
        Exit For
    End If
Next btn

btn.Click '<-- go to next page and try again
Wend

我不会过分依赖URL,因为它可能包含来自后端的底层逻辑;相反,作为前端用户处理问题(即只要我看到&#34;下一步&#34;按钮,我点击它然后我刮掉另一页)。