从网站列表中抓取数据

时间:2020-03-16 07:24:47

标签: excel vba web-scraping

`我正在尝试抓取诸如

的数据

成立日期,电子邮件地址,地址和董事详细信息 来自https://www.zaubacorp.com/company-list/nic-300-company.html中的500个网站列表,该列表扩展到许多页面。我需要提取网站,这是我在excel中使用Power查询完成的,但是从每个网站提取特定详细信息在Power Query中是一项繁琐的工作。

此外,问题出在电子邮件地址和地址上,无法找到类/标签ID名称。(这是我最近获得的,但现在我需要大量网站的帮助,该代码应该适用于所有网站(因为它们在特定位置具有相同类型的数据。

Sub GetInfo()
    Const URL = "https://www.zaubacorp.com/company/TECHDRIVE-SOFTWARE-LIMITED/U30007DL1999PLC356280"
    Dim Html As New HTMLDocument
    Dim elem As Object, adr As Object

    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", URL, False
        .send
        Html.body.innerHTML = .responseText
    End With

    For Each elem In Html.getElementsByTagName("b")
        If InStr(elem.innerText, "Email ID:") > 0 Then
            [A2] = elem.ParentNode.innerText
            Exit For
        End If
    Next elem

    For Each adr In Html.getElementsByTagName("b")
        If InStr(adr.innerText, "Address:") > 0 Then
            [B2] = adr.ParentNode.NextSibling.innerText
            Exit For
        End If
    Next adr
End Sub

1 个答案:

答案 0 :(得分:2)

我已修改您现有的脚本以遍历多个页面,现在可以从中提取每个容器的this.tableParams1 = new ngTableParams({ page: 1, // show first page count: 10, // count per page sorting: { sentDate: 'desc' // initial sorting } }, { filterDelay: 300, getData: function(params) { // ajax request to api return Api.get(params.url()).$promise.then(function(data) { params.total(data.inlineCount); return data.results; }); } }); nameDate of Incorporationemail。在执行以下脚本之前,请确保创建名为address的工作表。

DataContainer