Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 我可以获取div标记的内部值并将其转换为(最好是excel)表吗_Html_Excel_Vba_Html Table - Fatal编程技术网

Html 我可以获取div标记的内部值并将其转换为(最好是excel)表吗

Html 我可以获取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"

我正试图从我的公司使用的这个网站上获取信息。我有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" 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'.}这真的很有效!!多谢各位