Excel VBA 在 <a> 标签后提取 InnerText
Excel VBA extract InnerText after <a> tag
我正在尝试在标签后提取一些 InnerText。
这是HTML:
'<pre><a href="../">../</a>
<a href="view_10496.html">view_10496.html</a> 06-Feb-2021 01:54 60K
<a href="view_10498.html">view_10498.html</a> 06-Feb-2021 01:54 53K
<a href="view_10499.html">view_10499.html</a> 06-Feb-2021 01:54 26K
<a href="view_10500.html">view_10500.html</a> 06-Feb-2021 01:54 15K
<a href="view_10501.html">view_10501.html</a> 06-Feb-2021 01:54 128K
我的代码可以获取 a 标签的内容,但我还想提取 a 标签后面的文本。
计数器确保我丢弃第一个 a 标签。
Set alle_a_tags = ie.document.getElementsByTagName("a")
For Each a_tag In alle_a_tags
If teller = 0 Then
GoTo Volgende_a_tag
End If
InnerHTML = a_tag.InnerHTML
InnerText = a_tag.InnerText
Href = a_tag.Href
Date = ...
Next
您可以使用正则表达式提取结束标记后面的文本。
示例:(?<=)(.|\r).*?$
正则表达式沙盒:https://regex101.com/
仅基于 HTML 提供的:
您可以将 href 属性值的子字符串与 starts with 运算符匹配以获得正确的前导节点。然后您需要移动到 NextSibling 以获得所需的文本。您可以使用 Select Case 来确定要访问哪个 属性,具体取决于该同级
的节点类型
Dim i As Long, nodes As Object, nextSibling As Object
Set nodes = ie.document.querySelectorAll("[href^='view_']")
For i = 0 To nodes.Length - 1
Set nextSibling = nodes.Item(i).nextSibling
'https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
Select Case nextSibling.NodeType
Case 1
Debug.Print nextSibling.innerText
Case 3
Debug.Print nextSibling.NodeValue
End Select
Next
我正在尝试在标签后提取一些 InnerText。
这是HTML:
'<pre><a href="../">../</a>
<a href="view_10496.html">view_10496.html</a> 06-Feb-2021 01:54 60K
<a href="view_10498.html">view_10498.html</a> 06-Feb-2021 01:54 53K
<a href="view_10499.html">view_10499.html</a> 06-Feb-2021 01:54 26K
<a href="view_10500.html">view_10500.html</a> 06-Feb-2021 01:54 15K
<a href="view_10501.html">view_10501.html</a> 06-Feb-2021 01:54 128K
我的代码可以获取 a 标签的内容,但我还想提取 a 标签后面的文本。 计数器确保我丢弃第一个 a 标签。
Set alle_a_tags = ie.document.getElementsByTagName("a")
For Each a_tag In alle_a_tags
If teller = 0 Then
GoTo Volgende_a_tag
End If
InnerHTML = a_tag.InnerHTML
InnerText = a_tag.InnerText
Href = a_tag.Href
Date = ...
Next
您可以使用正则表达式提取结束标记后面的文本。
示例:(?<=)(.|\r).*?$
正则表达式沙盒:https://regex101.com/
仅基于 HTML 提供的:
您可以将 href 属性值的子字符串与 starts with 运算符匹配以获得正确的前导节点。然后您需要移动到 NextSibling 以获得所需的文本。您可以使用 Select Case 来确定要访问哪个 属性,具体取决于该同级
的节点类型Dim i As Long, nodes As Object, nextSibling As Object
Set nodes = ie.document.querySelectorAll("[href^='view_']")
For i = 0 To nodes.Length - 1
Set nextSibling = nodes.Item(i).nextSibling
'https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
Select Case nextSibling.NodeType
Case 1
Debug.Print nextSibling.innerText
Case 3
Debug.Print nextSibling.NodeValue
End Select
Next