【问题标题】:VBA for extracting from URL用于从 URL 中提取的 VBA
【发布时间】:2018-10-23 19:17:28
【问题描述】:

我正在尝试从 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

请大家帮帮我

【问题讨论】:

  • 您面临的具体问题是什么?代码运行但结果错误,还是代码在某些时候失败?

标签: html excel vba web-scraping


【解决方案1】:

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

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

【讨论】:

  • 嗨 QHarr 我尝试以下代码 Set html = New HTMLDocument ActiveCell.Offset(1, 0) = html.querySelectorAll("#srchpagination a").Item(html.querySelectorAll("#srchpagination a" ).Length - 2).innerText )
  • 嗨,QHarr,您能告诉我如何将分页链接中的最后一页编号获取到 Excel 中...这是我的网址“justdial.com/Upleta/Cosmetic-Wholesalers
猜你喜欢
  • 1970-01-01
  • 2016-07-02
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 2014-07-12
相关资源
最近更新 更多