【发布时间】:2017-07-04 22:28:35
【问题描述】:
我使用 VBA 和 selenium 编写了一个脚本,以从一个网页中获取所有公司链接,该网页在滚动到最下方之前不会显示所有链接。但是,当我运行我的脚本时,我只得到 20 个链接,但总共有 1000 个链接。我听说在代码之间执行 javascript 函数可以完成这种类型的任务。在这一点上,我不知道如何将它放在我的脚本中。到目前为止,这是我尝试过的:
Sub Testing_scroll()
Dim driver As New WebDriver
Dim posts As Object, post As Object
driver.Start "chrome", "http://fortune.com/fortune500"
driver.get "/list/"
driver.execute_script ("window.scrollTo(0, document.body.scrollHeight);") --It doesn't support here
Set posts = driver.FindElementsByXPath("//li[contains(concat(' ', @class, ' '), ' small-12 ')]")
For Each post In posts
i = i + 1
Cells(i, 1) = post.FindElementByXPath(".//a").Attribute("href")
Next post
End Sub
【问题讨论】:
-
如果您的 Excel 版本支持 Power Query 或旧版本的动态 Web Query vertex42.com/News/excel-web-query.html,我认为 Power Query 可以自动执行此操作
标签: vba selenium selenium-webdriver web-scraping