从具有多个内部文本的网页excel vba中抓取数据
Grab data from webpage excel vba with multiple innertext
我正在尝试从网页中获取一些数据,并取得了部分成功。然而,我的html和javascript知识并不是最好的。我可以获取数据并填充到我的工作表中,但如果可能的话,我想更多地分离数据。
这是我的代码:
Sub get_data_2()
'Source for this code is:
'http://stackoverflow.com/questions/26613043/get-data-out-of-a-webpage-with-vba
Dim sht As Worksheet
Dim SKU As String
Dim RowCount As Long
Set sht = Sheet8
Set ie = CreateObject("InternetExplorer.application")
RowCount = 1
'This just gives the columns a titel i row numer 1.
sht.Range("a" & RowCount) = "SKU"
sht.Range("b" & RowCount) = "Own titel"
sht.Range("c" & RowCount) = "EMO titel"
sht.Range("d" & RowCount) = "Product info"
sht.Range("e" & RowCount) = "Weight"
sht.Range("f" & RowCount) = "Volum"
sht.Range("g" & RowCount) = "EAN"
sht.Range("h" & RowCount) = "Originalnumber"
sht.Range("i" & RowCount) = "Price"
sht.Range("j" & RowCount) = "Stock"
sht.Range("k" & RowCount) = "Units"
Do
RowCount = RowCount + 1
SKU = sht.Range("a" & RowCount).Value ' **SKU is 491215 in this example**
With ie
.Visible = False
.navigate "https://www.emo.no/web/ePortal/ctrl?action=showiteminfo&itemNo=" & SKU
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
sht.Range("c" & RowCount).Value = .document.getElementById("itemDetail_heading").innerText
sht.Range("d" & RowCount).Value = .document.getElementById("itemDetail_textBox").innerText
sht.Range("e" & RowCount).Value = .document.getElementById("itemDetail_technicalDataBox").innerText
sht.Range("j" & RowCount).Value = .document.getElementById("itemDetail_deliveryBox").innerText
sht.Range("k" & RowCount).Value = .document.getElementById("itemDetail_unitsbox").innerText
End With
Loop While sht.Range("a" & RowCount + 1).Value <> ""
Set ie = Nothing
End Sub
现在,在网页上的html源(摘录(如下:
<div id="itemDetail_container">
<div id="itemDetail_heading">
<div class="xxLarge extraBold">Papir ubleket kraft 60g 40cm 5kg/rull</div>
<div class="item_itemNumberBox">
<span class="darkGray medium">Varenr : 491215</span>
</div>
</div>
我只想要文本"Papir ubleket牛皮纸60g 40cm 5kg/rull"出现在我的excel表中,但我也得到了"Varenr:491215"。其他列也是如此。我试图发布excel抓取的结构,但没有被允许。你可以运行代码并查看,或者我可以给你发电子邮件截图。
如何将数据放入不同的列中?
非常感谢您的帮助!:-(
对于"Papir ubleket kraft 60g 40cm 5kg/rull",更改此
.document.getElementById("itemDetail_heading").innerText
至:
.document.getElementById("itemDetail_heading").getElementsByTagName("div")(0).innerText
或(不太具体(:
.document.getElementById("itemDetail_heading").firstChild.innerText
获取"Varenr:491215"-
.document.getElementById("itemDetail_heading").getElementsByTagName("span")(0).innerText
相关文章:
- 如何防止网页加载后自动启动功能
- 将HTML表格导出到excel时,无法将数据加载到excel文件中
- 如何使用Node.js最有效地解析网页
- 刷新后保留对网页的更改
- AJAX不会在文件上传后重定向到网页-POST方法
- 提交按钮,该按钮位于使用 Excel VBA 的 Javascript 中
- 网页到excel' '无法用作制表符分隔符(JSFIDDLE)
- 使用java脚本通过网页保存Excel文件
- 将 Excel 数据传输到网页上的文本字段和按钮中
- 在网页上,使用Excel宏更改下拉框的值/直接调用javascript命令
- Excel VBA将数据发送到运行HOW的网页
- 将数据从用脚本编写的网页导入excel
- Excel数据透视表在网页
- 使用vba Excel从网页下载数据
- 使用“网页”在Excel中打开
- Java脚本,读取excel文件,并在打开网页时将数据显示在html网页上
- 下载Excel表格和分析网页使用
- 从具有多个内部文本的网页excel vba中抓取数据
- 将用脚本(seajs)编写的网页中的数据导入Excel
- 在网页中显示excel数据