下面是浏览网站后得到的源代码
<item><a href="/search/Listing/45678489?source=results" id="mk:0:mk" class="details">
我只想复制/ search / Listing / 45678489?source = Excel中的结果并想知道如何单击它
class =“ details”对于我要复制的所有href链接都是相同的,而id继续增加mk:1:mk,ms:2:mk等
答案 0 :(得分:0)
如果该字符串始终像您发布的一样,并且您希望在/search/Listing/45678489?source=results
之后得到字符串<item><a href=
,则可以使用以下代码
Option Explicit
Function ExtractIt(inp As String) As String
Dim v As Variant
v = Split(inp, Chr(34))
ExtractIt = v(1)
End Function
Sub TestIt()
Dim inp As String
inp = "<item><a href=""/search/Listing/45678489?source=results"" id=""mk:0:mk"" class=""details"">"
Debug.Print ExtractIt(inp)
End Sub
代码假定inp始终以<item><a href=
开头,然后我们在"
之间建立了链接。
答案 1 :(得分:0)
因此,在每个页面上,您都可以在列表中收集当前的链接集,但是在上面的示例中,您需要先将协议/域连接到url,然后才能写出Excel。我不会尝试单击那些写出的链接(可能是超链接),因为这样做效率低下,并且会产生许多IE实例,您需要记住要手动关闭它们。
在任何给定页面上,获取链接列表并在每种情况下生成完整的URL
Dim nodes As Object, i As Long
Set nodes = ie.document.querySelectorAll(".details[id^='mk:']")
With ActiveSheet
For i = 0 To nodes.Length -1
.Cells(i+1,1) = "protocol + domain...." & nodes.item(i).href
Next
End With
然后,而不是单击,将这些URL读入一个数组,循环该数组,并在可能的情况下发出xmlhttp requests或.Navigate with IE to the current url in the array。