gpt4 book ai didi

html - 如何在使用vba抓取网页后删除引号

转载 作者:行者123 更新时间:2023-11-28 00:40:23 25 4
gpt4 key购买 nike

我开始对网页进行网络抓取,并在复制单元格时注意到以下内容。

"
In stock
"
"
4 to 10 bus days
"
"
4 to 10 bus days
"
"
4 to 10 bus days
"

我试图将它们与额外的 CR LF 一起删除,以便获得以下内容

In stock
4 to 10 bus days
4 to 10 bus days
4 to 10 bus days

我试过以下方法,但都不起作用

Set availability = ie.Document.querySelector(".product-section")
Dim arr() As String
arr = Split(Replace(Trim(availability.innerText), Chr(34), ""), ":")
wks.Cells(i, "D").Value = (arr(UBound(arr)))

Set availability = ie.Document.querySelector(".product-section")
Dim arr() As String
arr = Split(Replace(Trim(availability.innerText), """", ""), ":")
wks.Cells(i, "D").Value = (arr(UBound(arr)))

Set availability = ie.Document.querySelector(".product-section")
Dim arr() As String
arr = Split(Trim(availability.innerText), ":")
wks.Cells(i, "D").Value = (arr(UBound(arr)))

跟网页有关?其他网页输出正常?

我该如何解决?

第一个网址是 https://www.overshop.gr/index.php?route=product/product&product_id=11684https://www.overshop.gr/index.php?route=product/product&product_id=1485上面写着有货

最佳答案

在这种情况下,最好使用直接选择器,但由于某些链接缺货,第二类更改为 .prod-stock-out,您需要进行测试以确定哪个后代要使用的类选择器。

CSS:

.product-section .prod-stock

VBA:

ie.document.querySelector(".product-section .prod-stock").innerText

Option Explicit
Public Sub GetInfo()
Dim ie As New InternetExplorer, wks As Worksheet
Dim j As Long, urls()
Set wks = ThisWorkbook.Worksheets("Sheet1")
urls = Application.Transpose(wks.Range("A1:A2").Value) 'adjust for range containing all urls
With ie
.Visible = True

For j = LBound(urls) To UBound(urls)
.Navigate2 urls(j)

While .Busy Or .readyState < 4: DoEvents: Wend

wks.Cells(j, "C") = .document.querySelector(".col-sm-8 h1").innerText

If .document.getElementsByClassName("product-section")(0).getElementsByClassName("prod-stock").Length = 0 Then
wks.Cells(j, "D") = .document.querySelector(".product-section .prod-stock-out").innerText
Else
wks.Cells(j, "D") = .document.querySelector(".product-section .prod-stock").innerText
End If
Next
.Quit
End With
End Sub

您还可以使用更具可读性的:<​​/p>

If .document.querySelectorAll(".product-section .prod-stock").Length = 0 Then
wks.Cells(j, "D") = .document.querySelector(".product-section .prod-stock-out").innerText
Else
wks.Cells(j, "D") = .document.querySelector(".product-section .prod-stock").innerText
End If

关于html - 如何在使用vba抓取网页后删除引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53822698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com