簡體   English   中英

使用 css 選擇器 excel vba 從網站抓取數據

[英]Scraping data from website with css selectors excel vba

我正在嘗試使用 CSS 選擇器從網站上抓取特定數據。 我在 QHar 的幫助下取得了成功,但現在的要求已經改變。 這是我下面的代碼:

代碼

Public Sub CompanyData2()

Dim html As HTMLDocument, ws As Worksheet, re As Object

Set re = CreateObject("VBScript.RegExp")
re.Pattern = "\s{2,}"
Set ws = ThisWorkbook.Worksheets("Sheet1")
Set html = New HTMLDocument

With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", "https://www.bizi.si/iskanje?q=", False
    .send
    html.body.innerHTML = .responseText
End With

ws.Range("A4").Value = re.Replace(Join$(Array(html.querySelector("td.item a").innerText), ", "), Chr$(32))
ws.Range("A5").Value = re.Replace(Join$(Array(html.querySelector("td.item + td.item").innerText), ", "), Chr$(32))
ws.Range("B6").Value = re.Replace(Join$(Array(html.querySelector("td.item + td.item + td.item + td.item").innerText), ", "), Chr$(32))

End Sub

結果如下:

在此處輸入圖像描述

網站

在此處輸入圖像描述

我想在表格 1 A3 上提取公司名稱,如下所示:

在此處輸入圖像描述

謝謝你。

您需要在 A1 中REPROMAT ,然后在發出初始查詢后,您必須訪問實際的公司頁面以獲取顯示的公司名稱。 如果您直接使用 url 公司,那么您可以跳過第一個請求並從第二個請求開始使用代碼。

Public Sub CompanyData()
    Dim html As HTMLDocument, ws As Worksheet, nodes As Object

    Set ws = ThisWorkbook.Worksheets("Sheet1")
    Set html = New HTMLDocument

    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", "https://www.bizi.si/iskanje?q=" & Application.EncodeURL(ws.Range("A1").Value), False
        .send
        html.body.innerHTML = .responseText

        Set nodes = html.querySelectorAll("td.item")

        With ws
            .Range("A4").Value = nodes.Item(0).FirstChild.innerText
            .Range("A5").Value = nodes.Item(1).innerText
            .Range("A6").Value = "DŠ: " & nodes.Item(3).innerText
        End With

        .Open "GET", html.querySelector("[id$=linkCompany]").href, False
        .send
        html.body.innerHTML = .responseText
        ws.Range("A3") = html.querySelector("#ctl00_ctl00_cphMain_cphMainCol_CompanySPLPreview1_labTitlePRS").innerText
    End With
End Sub

如果有幫助,我會向您發送快照。 基本上我想將公司數據添加到網站的訂單或報價中。 URL https://www.bizi.si/REPROMAT-DOO/

在此處輸入圖像描述

在此處輸入圖像描述

謝謝你。

它與 Repromat QHarr 公司合作正常。 但我嘗試過使用其他公司名稱,如 Akrapovič dd、Cerjak doo、IHS doo,但出現錯誤。 在此處輸入圖像描述

我不知道問題是什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM