Перейдите на страницы через селен VBA - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь перейти от страницы к странице, используя селен VBA. Вот что я получил при проверке html страницы

<div class="paging bottom" style="cursor: pointer;"><a data-page="1" href="#" class="prev"><div id="triangle-left"></div> Prev</a><span>1</span><a data-page="2">2</a><a data-page="3">3</a><a data-page="4">4</a>..<a data-page="5">5</a><a data-page="2" href="#" class="next">Next <div id="triangle-right"></div></a></div>

Я запутался, как ссылаться на каждую страницу. При проверке символа # в атрибуте href я обнаружил одинаковую ссылку для всех страниц https://www.file-up.org/?op=my_files# Нет указаний о том, как переходить со страницы на страницу. И как я могу определить общее количество страниц в этой части нумерации страниц?

Я мог бы решить это частично так

        For i = 1 To 5
        Application.Wait Now + TimeValue("00:00:03")
        p = p + 1

        Set fStream = New ADODB.Stream
        With fStream
            .Charset = "UTF-8"
            .Open
            .WriteText bot.PageSource
            .SaveToFile Environ("USERPROFILE") & "\Desktop\" & p & ".mhtml", 2
            .Close
        End With

        On Error Resume Next
        Set btn = .FindElementByCss("a.next")
        If btn.IsPresent = True Then
            btn.Click
        End If
        On Error GoTo 0
    Next i

Но есть две заметки. Сначала я должен набрать общее количество страниц в строке l oop Еще один момент: как заставить код ждать, пока страница загрузится и исходный код html будет сохранен? этот момент смутил меня.

1 Ответ

1 голос
/ 25 марта 2020

Вы можете использовать следующий xpath для получения количества страниц.

//a[@data-page][last()-1]

enter image description here

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