Html 我可以获取div标记的内部值并将其转换为(最好是excel)表吗
我正试图从我的公司使用的这个网站上获取信息。我有html文件和div标签,它们与所有id信息一起使用。我想提取不同的ID,以便我的公司在识别不同的供应商时可以使用相同的IDHtml 我可以获取div标记的内部值并将其转换为(最好是excel)表吗,html,excel,vba,html-table,Html,Excel,Vba,Html Table,我正试图从我的公司使用的这个网站上获取信息。我有html文件和div标签,它们与所有id信息一起使用。我想提取不同的ID,以便我的公司在识别不同的供应商时可以使用相同的ID <div id="Vend_Sel_372129" style="overflow:hidden;" class="Sel_Disp" data_sel="0" data_value="Supplierxx" data_id="372129" data_codec="729" data_prefix="0183011"
<div id="Vend_Sel_372129" style="overflow:hidden;" class="Sel_Disp" data_sel="0" data_value="Supplierxx" data_id="372129" data_codec="729" data_prefix="0183011" data_content="" onclick="Test_Init_Supplier_Change(this,0);">
<a class="s" title="Suplierxx" href="javascript:void(0)">Suplierxx</a>
我有大量的数据,我希望能够提取id、data\u id和data\u值,并将它们全部放在一个表中。最好不要一次只做一个,因为我有大约一千个这样的div标记。使用Javascript,您可以循环整个数据集,使用element.getAttributeAttributeAttributeName提取数据。然后可以将其输出为csv格式,excel可以读取该格式 更多信息: 编辑:我只是看到数据不是来自一个表,而是来自许多div。这里有另一个链接可以帮助您
根据html文件的格式是否正确,这可能会起作用。有关更多搜索选项,请参阅。解析10000个标签花了我1秒钟的时间
Option Explicit
Sub extract()
Const HTML_FILE = "C:\temp\test10000.html"
Dim obj, ws As Worksheet, iRow As Long, tags As Variant, t0 As Single
tags = Array("id", "data_id", "data_value")
' set up results sheet
t0 = Timer
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Cells.Clear
ws.Range("A1:C1") = Array("id", "data_id", "data_value")
iRow = 1
' create xml parser
Set obj = CreateObject("MSXML2.DOMDocument.6.0")
With obj
.setProperty "SelectionLanguage", "XPath"
.validateOnParse = True
.Load HTML_FILE
End With
' tags to search for
Dim xpath As String
xpath = "//div[@class ='Sel_Disp']"
' search
Dim nodes As Object, node As Object, i As Long
Set nodes = obj.SelectNodes(xpath)
' output to sheet1
For Each node In nodes
iRow = iRow + 1
'Debug.Print iRow, node.XML
For i = 0 To UBound(tags)
ws.Cells(iRow, i + 1) = node.getAttribute(tags(i))
Next
Next
' end
MsgBox iRow - 1 & " rows written", vbInformation, "Completed in " & Int(Timer - t0) & " secs"
End Sub
你能和我们分享一下你到目前为止所做的尝试吗?我试着一次做一个这可能会有所帮助:从我的理解来看,问题是它不是一个表,它只是一个div tags。你想要一个VBA Excel解决方案吗?html格式是否正确,您显示的示例缺少结束标记/I尝试了此方法,但查找和打印Vend_Sel id$'Vend_Sel_'+id.find'div.无效。每个函数{var innerDivId=$this.attr'id';console.log'innerDivId';}您需要遍历div的父级,而不是div本身。例如,正文标签的id或数据周围的任何标签。它看起来像是$'parent\u id'。查找'div'。每个=>{let csvRow=$this.attr'id'+csvsepator+$this.attr'data\u id'.}这真的很有效!!多谢各位