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