首页 > 解决方案 > 用于从 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

请任何人帮助我

标签: htmlexcelvbaweb-scraping

解决方案


您可以收集分页链接的节点列表,然后获取最后一个索引,即最大页码。您可以使用 CSS 后代组合器来执行此操作,以定位父元素的 id,然后定位其中的a标记元素。我使用 -2 来获取正确的索引,因为 nodeList 是基于 0 的索引。

Debug.Print html.querySelectorAll("#srchpagination a").item(html.querySelectorAll("#srchpagination a").Length - 2).innerText

推荐阅读