html - 用于从 URL 中提取的 VBA
问题描述
我正在尝试从 URL 中提取最后一页编号,我想获取最大页数。
下面是我的网址
https://www.justdial.com/Upleta/Cosmetic-Wholesalers-in-Upleta-Lati-Plot
下面是我尝试的 VBA 代码,但有些地方有问题
Dim sResponse As String, html As HTMLDocument
Dim url As String
Dim N As Long
Dim X As Long
url = ActiveCell.Value
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", url, False
.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
.send
sResponse = StrConv(.responseBody, vbUnicode)
End With
Set html = New HTMLDocument
With html
.body.innerHTML = sResponse
ActiveCell.Offset(1, 0) = .getElementByClass("Jpag").innerText
ActiveCell.Offset(1, 0) = .getElementById("srchpagination").innerText
ActiveCell.Offset(0, 1).Select
End With
请任何人帮助我
解决方案
您可以收集分页链接的节点列表,然后获取最后一个索引,即最大页码。您可以使用 CSS 后代组合器来执行此操作,以定位父元素的 id,然后定位其中的a
标记元素。我使用 -2 来获取正确的索引,因为 nodeList 是基于 0 的索引。
Debug.Print html.querySelectorAll("#srchpagination a").item(html.querySelectorAll("#srchpagination a").Length - 2).innerText
推荐阅读
- amazon-web-services - ECS Fargate 任务无法访问另一个账户中的 s3
- python - 从非结构化文本数据中读取第一行
- javascript - 通过 POST 请求将图像上传到 Firebase 存储
- javascript - 在处理错误之前检查中间 Rxjs 结果
- c# - 如何在 C# 中编组包含另一个结构的数组的非托管结构?
- python - 如何有效地填充 np.array?
- node.js - 是否可以对 db.list() 的结果进行排序?
- python - 单行修改列表中的所有元素?
- vba - VBA - 从通过 getopenfilename 打开的工作簿数组中提取工作簿名称
- node.js - Gitbook-cli install error TypeError: cb.apply is not a function inside graceful-fs