如何从网站https://www.lyngsat.com/tvchannels/in/Aaj-Tak.html提取表格到没有标识符的Excel?
我想从包含卫星位置,频率和加密的表中提取数据。
以前,我尝试使用getElementsByTagName,但是页面上不同表的标签太多。
答案 0 :(得分:1)
我会使用xmlhttp。您想要的表位于索引11(基于0的索引)。我使用剪贴板作为写表的简单方法。如果您不想使用剪贴板,则可以如WriteTable
子here
此
html.querySelectorAll("table").item(11)
选择响应中该索引处的表。等效于
html.getElementsByTagName("table")(11)
在与table
类型选择器结合使用时,输出中还有另一个唯一标识符,该标识符是border
的表1
属性值:
因此您可以使用
clipboard.SetText html.querySelector("table[border='1']").outerHTML
VBA:
Option Explicit
Public Sub GetTable()
Dim html As HTMLDocument, clipboard As Object '< VBE > Tools > References > Microsoft HTML Object Library
Set html = New HTMLDocument
Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "https://www.lyngsat.com/tvchannels/in/Aaj-Tak.html", False
.send
html.body.innerHTML = .responseText
End With
clipboard.SetText html.querySelectorAll("table").item(11).outerHTML ' html.querySelector("table[border='1']").outerHTML
clipboard.PutInClipboard
ThisWorkbook.Worksheets("Sheet1").Range("A1").PasteSpecial
End Sub