Как получить «Проданное количество» с веб-сайта eBay в Excel с помощью VBA?

Я пытаюсь получить количество проданных товаров (в реальном времени) с eBay в Excel с помощью VBA? Это то, что я нашел на stackoverflow до сих пор. Но я не получаю никаких результатов Буду признателен за любую помощь Спасибо

Option Explicit
Sub readData()

Dim XMLPage As New MSXML2.XMLHTTP60
Dim html As New MSHTML.HTMLDocument
Dim profile As IHTMLElement6

XMLPage.Open "GET", "https://www.ebay.com/itm/VIRGINIA-CAVALIERS-FINAL-FOUR-National-FREAKIN-Champions-T-Shirt-Gildan/352639122861", False
XMLPage.send

If XMLPage.Status <> 200 Then MsgBox XMLPage.statusText
html.body.innerHTML = XMLPage.responseText


 For Each profile In html.getElementsByTagName("span")(0).Children
 Debug.Print profile.getElementsByClassName("vi-txt-underline")(0)

Next

End Sub

Можете ли вы сказать нам, что из вашего кода не работает и какие результаты вы ожидаете? (минимальный воспроизводимый пример)

LuckyLikey 28.05.2019 17:17

Конечно, я ожидаю получить «1» в качестве количества проданного товара.

Alex 28.05.2019 17:46

Мне просто нужно вытащить внутренний текст (но только числовое значение) имени класса «vi-txt-underline» на этой веб-странице и поместить его на лист Excel. Затем я хочу создать тот же код для 100 элементов.

Alex 28.05.2019 17:48
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Использование класса в порядке. На странице есть только одно совпадение, поэтому нет необходимости захватывать несколько коллекций и зацикливаться. Просто используйте querySelector, чтобы вернуть первое совпадение.

Public Sub GetNumberSold()
    Dim html As HTMLDocument

    Set html = New HTMLDocument

    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", "https://www.ebay.com/itm/VIRGINIA-CAVALIERS-FINAL-FOUR-National-FREAKIN-Champions-T-Shirt-Gildan/352639122861", False
        .send
        html.body.innerHTML = .responseText
    End With

    MsgBox html.querySelector(".vi-txt-underline").innerText
    Debug.Print Replace$(html.querySelector(".vi-txt-underline").innerText," sold",vbNullString)
    Debug.Print split(html.querySelector(".vi-txt-underline").innerText,chr$(32))(0)

End Sub

Спасибо, QHarr, есть ли способ прочитать только числовую часть, чтобы я мог создать график в Excel?

Alex 28.05.2019 20:57

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

QHarr 28.05.2019 20:58

Другие вопросы по теме