Извлечение ссылки href из исходного кода с использованием VBA - PullRequest
0 голосов
/ 10 ноября 2019

Ниже приведен исходный код, который я получаю после просмотра веб-сайта

<item><a href="/search/Listing/45678489?source=results" id="mk:0:mk" class="details">

Я просто хочу скопировать ссылку / поиск / объявление / 45678489? Source = приводит к результатам в Excel и хочу знать, как нажатьit

class = "details" одинаково для всех ссылок href, которые я хочу скопировать, в то время как id продолжает увеличиваться mk: 1: mk, ms: 2: mk и т. д.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2019

Итак, на каждой странице вы можете собрать текущий набор ссылок в списке, но, взглянув на приведенный выше пример, вам нужно будет объединить протокол / домен с 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 запросов или . Перейдите с IE к текущему URL в массиве .

0 голосов
/ 10 ноября 2019

Если строка всегда такая, как вы опубликовали, и вы хотите получить строку /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= и тогда у нас есть связь между ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...