【发布时间】:2021-02-22 13:16:53
【问题描述】:
我希望将网站表格中的所有文本内容放入 Excel 单元格 A9 到 A16。单元格 A1 到 A8 很好,因为所有数据都在那里,但格式不好(另一个问题)。
我正在使用.getElementByClassName,表的类名是 table,它是站点中的第一个表,因此是 0。我正在尝试获取 tr 标签中的所有文本内容,但它并没有完全填充从A9。我假设在它们之间或另一列之间有很多空格。
Sub VBAWebscraping()
Dim ieObj As InternetExplorer
Dim htmlEle As IHTMLElement
Dim i As Integer
i = 1
Set ieObj = New InternetExplorer
ieObj.Visible = True
ieObj.navigate Url:="https://www.miamidade.gov/Apps/PA/propertysearch/#/?folio=0431070030890"
Do While ieObj.Busy = True Or ieObj.readyState <> READYSTATE_COMPLETE
Application.Wait Now + TimeValue("00:00:05")
Loop
For Each htmlEle In ieObj.document.getElementsByClassName("table")(0).getElementsByTagName("tr")
With ActiveSheet
.Range("A" & i).Value = htmlEle.Children(0).textContent
End With
i = i + 1
Next htmlEle
End Sub
【问题讨论】:
-
从 A9 未完成时是否显示任何错误?您使用的是哪个 IE 版本和操作系统版本?我在两个版本的IE中做了测试,发现结果不一样。在 11.1082.18362.0 版本中,代码运行良好 like this。但是在 11.572.19041.0 版本中,网站甚至无法完全加载,can't find the table
#property_info。所以也请使用 F12 开发工具检查 html 元素以查看表格是否已完全加载。 -
周宇你好。谢谢你的回复。我没有收到任何错误。我使用的是 IE 版本 11.9,Windows 10 Pro 是我的操作系统。我开始寻找其他方法来抓取这个网站,并使用 Python、API 和 JSON 陷入困境。我是初学者,所以我仍在学习并试图弄清楚。我相信该网站已完全加载。
-
很奇怪,它没有显示任何错误但不起作用。您的代码可以在我这边运行良好。尝试使用其他方法来实现您想要的效果是个好主意。
标签: excel vba parsing internet-explorer web-scraping