Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7   вперед  Ctrl      все
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
iMrTidy
Откройте в Notepad++ и перекодируйте в utf-8, а затем сохраните.
Заработало!
18 июл 19, 11:22    [21929235]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
Я в обычном блокноте писал HTML. Получается обычный блокнот не задает нужную кодировку.
18 июл 19, 11:23    [21929239]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
ferzmikk,

Блокнот при сохранении

К сообщению приложен файл. Размер - 6Kb
18 июл 19, 11:26    [21929243]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
iMrTidy
Нажатие на [+] приводит к крашу, т.к. это такой баг такая фича типа данных, ничего с этим не поделаешь.
Это из за объекта HTMLDocument?

Каждый раз вводить определенный item объекта в Debug.Print не удобно, даже через цикл. Как же можно смотреть иерархию объекта?

Внизу скриншот. В цикле один элемент. На строке elem появляется ошибка.

К сообщению приложен файл. Размер - 47Kb
18 июл 19, 14:07    [21929441]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
ferzmikk
Внизу скриншот. В цикле один элемент. На строке elem появляется ошибка.
Даже когда шаг на строке Next elem и нажать на Reset, то все равно зависает.

К сообщению приложен файл. Размер - 39Kb
18 июл 19, 14:10    [21929446]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
Как можно по другому анализировать содержимое?
18 июл 19, 14:10    [21929447]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
ferzmikk,

Подождите, Вам же kealon(Ruslan) согласился написать все красиво: 21929211.
18 июл 19, 14:12    [21929452]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
iMrTidy
ferzmikk,

Подождите, Вам же kealon(Ruslan) согласился написать все красиво: 21929211.
ОК
18 июл 19, 14:25    [21929465]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
Усложняю пример, который приближается к реальному.
+Дополненный HTML-код
<html>
  <head>
    <title>Тестовая страница</title>
  </head>
  <body>
    <h1>Статистика</h1>
    <h2>Таблица 1</h2>
    Период: 01.01.2019-30.06.2019<br>
    <br>
    <table class="list border">
      <tbody>
        <tr>
          <th class="left">Колонка 1</th>
          <th>Строка 1 Колонка 2<br>Строка 2 Колонка 2</th>
          <th>Колонка 3</th>
          <th>Колонка 4</th>
          <th class="right">Колонка 5</th>
        </tr>
        <tr class=" ">
          <td>Значение 1.1</td>
          <td style="text-align: center;">
            <a href="?numberId=00001">Значение 1_1.2</a>
            <br><br>
            <a href="?numberId=00001&lotId=00001">Значение 1_2.2</a></td>
          <td>Значение 1.3</td>
          <td nowrap>Значение 1.4</td>
          <td>Значение 1.5</td>
        </tr>
        <tr class="even ">
          <td>Значение 2.1</td>
          <td style="text-align: center;">
            <a href="?numberId=00001">Значение 2_1.2</a>
            <br><br>
            <a href="?numberId=00001&lotId=00002">Значение 2_2.2</a></td>     
          <td>Значение 2.3</td>
          <td nowrap>Значение 2.4</td>
          <td>Значение 2.5<td>
       </tr>
    </tbody>
  </table>
  
  <div class="pagination-is ">
    <div class="pagination"><div class="context">
      <span class="active"><span>1</span></span>
      <a href="/aaaaa/?page=2">2</a>
      <a href="/aaaaa/?page=3">3</a>
      <a href="/aaaaa/?page=4">4</a>
      <a href="/aaaaa/?page=5">5</a>
      <a href="/aaaaa/?page=6">6</a>
      <a href="/aaaaa/?page=7">7</a>
      <a href="/aaaaa/?page=8">8</a>
      <a href="/aaaaa/?page=9">9</a>
      <a href="/aaaaa/?page=10">10</a>
      <span class="dots">...</span> <a href="/aaaaa/?page=10000">10000</a>
    </div></div>
  </div>

  <p><a href="https://yandex.ru">Яндекс</a></p>
  <div>
    <p><a href="https://www.google.com">Google</a></p> 
  </div>
</body>
</html>
Чтобы зацепиться к строке, где присутствует стиль, то как правильно нужно писать? Учитывая еще есть родительский тег div со стилем.
Set elems = html.querySelectorAll("span class=""dots""")
18 июл 19, 14:45    [21929485]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
Потом, когда узнали количество "страниц" для продолжение таблицы, то как правильно выгружать последующие "страницы"?
18 июл 19, 14:47    [21929490]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5465
iMrTidy
ferzmikk,

Подождите, Вам же kealon(Ruslan) согласился написать все красиво: 21929211.
не вижу в этом сообщении никакой оферты, но могу рассмотреть предложения если такие мысли будут
18 июл 19, 15:12    [21929516]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
ferzmikk
Усложняю пример, который приближается к реальному.
+ Дополненный HTML-код
<html>
  <head>
    <title>Тестовая страница</title>
  </head>
  <body>
    <h1>Статистика</h1>
    <h2>Таблица 1</h2>
    Период: 01.01.2019-30.06.2019<br>
    <br>
    <table class="list border">
      <tbody>
        <tr>
          <th class="left">Колонка 1</th>
          <th>Строка 1 Колонка 2<br>Строка 2 Колонка 2</th>
          <th>Колонка 3</th>
          <th>Колонка 4</th>
          <th class="right">Колонка 5</th>
        </tr>
        <tr class=" ">
          <td>Значение 1.1</td>
          <td style="text-align: center;">
            <a href="?numberId=00001">Значение 1_1.2</a>
            <br><br>
            <a href="?numberId=00001&lotId=00001">Значение 1_2.2</a></td>
          <td>Значение 1.3</td>
          <td nowrap>Значение 1.4</td>
          <td>Значение 1.5</td>
        </tr>
        <tr class="even ">
          <td>Значение 2.1</td>
          <td style="text-align: center;">
            <a href="?numberId=00001">Значение 2_1.2</a>
            <br><br>
            <a href="?numberId=00001&lotId=00002">Значение 2_2.2</a></td>     
          <td>Значение 2.3</td>
          <td nowrap>Значение 2.4</td>
          <td>Значение 2.5<td>
       </tr>
    </tbody>
  </table>
  
  <div class="pagination-is ">
    <div class="pagination"><div class="context">
      <span class="active"><span>1</span></span>
      <a href="/aaaaa/?page=2">2</a>
      <a href="/aaaaa/?page=3">3</a>
      <a href="/aaaaa/?page=4">4</a>
      <a href="/aaaaa/?page=5">5</a>
      <a href="/aaaaa/?page=6">6</a>
      <a href="/aaaaa/?page=7">7</a>
      <a href="/aaaaa/?page=8">8</a>
      <a href="/aaaaa/?page=9">9</a>
      <a href="/aaaaa/?page=10">10</a>
      <span class="dots">...</span> <a href="/aaaaa/?page=10000">10000</a>
    </div></div>
  </div>

  <p><a href="https://yandex.ru">Яндекс</a></p>
  <div>
    <p><a href="https://www.google.com">Google</a></p> 
  </div>
</body>
</html>
Чтобы зацепиться к строке, где присутствует стиль, то как правильно нужно писать? Учитывая еще есть родительский тег div со стилем.
Set elems = html.querySelectorAll("span class=""dots""")


ferzmikk
Потом, когда узнали количество "страниц" для продолжение таблицы, то как правильно выгружать последующие "страницы"?
18 июл 19, 17:04    [21929623]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
kealon(Ruslan)
iMrTidy
ferzmikk,
Подождите, Вам же kealon(Ruslan) согласился написать все красиво: 21929211.
не вижу в этом сообщении никакой оферты, но могу рассмотреть предложения если такие мысли будут

kealon(Ruslan)
а я бы php взял, удобнее гораздо

kealon(Ruslan)
там очень удобный и достаточно надёжный преобразователь html в xml

kealon(Ruslan)
ну а дальше довольно тривиально ищется что нужно

kealon(Ruslan)
давно пора завязывать с такими поделками

kealon(Ruslan)
если мне будет нужно со своего сайта достать инфу, я её точно в html передавать не буду

kealon(Ruslan)
Хорошо, по-русски: то что вы описываете тут уже 3-ю страницу неюзабельно в современных реалиях. Это просто очень дорого в создании и поддержке. За знания того, как накостылять HTMLDocument , что бы он "допетрил", никто не заплатит.

kealon(Ruslan)
плохо доводит
спотыкается на примитивных вещах

kealon(Ruslan)
я не собираюсь вам доказывать насколько мс отстал

kealon(Ruslan)
я бы просто написал на чём ни будь вменяемом
и в ексель уже готовое сливал
на крайний случай бы просто написал обёртку с COM-интерфейсом которая будет давать xml, приведённый к адекватному

но мы же явно поиграть хотим

kealon(Ruslan)
парсер нижнего уровня
внезапно ..., да?


А я считаю, что все это явно указывает, что Вы горите желанием, демонстрируете свои глубокие знания в теме, и даже хотели бы сделать как надо, но, видимо, я мешаю, больше не мешаю, вперед. Только балаболы за свои слова не отвечают. Выбор за Вами.
19 июл 19, 10:35    [21930021]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5465
iMrTidy,

Выбор за ТС - 21929516, если наиграется и решит, что не его это дело, всегда пожалуйста, обсудим.
Ему уже много раз сказали, и не я один, что он выбрал плохой путь. Но можно конечно и безнадёжного поддерживать, если есть желающий оплатить сей процесс.
19 июл 19, 10:58    [21930037]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
В общем, поскольку я не делал сайты и начал парсинги писать, то могу многое чего не знать. Начал изучать HTML и CSS. Не знаю нужно ли изучать JavaScript, но если не ошибаюсь, там могут сидеть данные и фильтр.

Какой то код на VBA уже написан по выгрузке данных из сайта. Осталось немного дописать с учетом
- выгрузить количество страниц не через
Set elems = doc.querySelectorAll("body > a")
Set elem = elems(elems.Length - 1)
Debug.Print elem.innerText
а через использования стиля
  <div class="pagination-is ">
    <div class="pagination"><div class="context">
      <span class="active"><span>1</span></span>
      <a href="/aaaaa/?page=2">2</a>
      <a href="/aaaaa/?page=10">10</a>
      <span class="dots">...</span> <a href="/aaaaa/?page=10000">10000</a>
    </div></div>
  </div>
- выгрузка последующих страниц
- с использованием аутентификации
- с использованием фильтра

kealon(Ruslan)
Ему уже много раз сказали, и не я один, что он выбрал плохой путь.
Тогда если это действительно плохой путь, то хотелось бы понять чем конкретно плох. Все таки задачи разные бывают по парсингу, сайты разные, как говорите валидные/не валидные. Тогда скажите конкретно как делать правильно? Использовать другой объект? У VBA ограничения есть? Писать не на VBA, а на VB.Net, С# или на Pyton? На этих языках программирования также будет не надежно? Пожалуйста, порекомендуйте конкретную путевую литературу, где об парсинге пишут достаточно подробно и понятно с учетом разных логических нюансов, исходя данной задачи. Или ссылки на сайты, где по Вашему мнению правильно описывается как делать.
19 июл 19, 12:07    [21930109]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
Konst_One
Member

Откуда:
Сообщений: 11493
curl тебе в помощь

https://levashove.ru/how-to-install-curl-on-windows-10/
19 июл 19, 12:27    [21930138]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
Konst_One
curl тебе в помощь

https://levashove.ru/how-to-install-curl-on-windows-10/
Я правильно понимаю, что пишется на php?
19 июл 19, 12:50    [21930155]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
Konst_One
Member

Откуда:
Сообщений: 11493
нет, это утилита командной строки для отправки запросов по http
19 июл 19, 13:07    [21930175]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
Konst_One
нет, это утилита командной строки для отправки запросов по http
Его каждый раз вручную надо запускать?
19 июл 19, 13:19    [21930196]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
Konst_One
Member

Откуда:
Сообщений: 11493
можешь автоматизировать , написать батник, например
19 июл 19, 13:28    [21930206]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
Konst_One
можешь автоматизировать , написать батник, например
Тогда тут без VBA. Это пишется на VBScript? А тот but может результат в excel выложить как умную таблицу?
19 июл 19, 13:35    [21930213]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
court
Member

Откуда:
Сообщений: 1858
Konst_One
curl тебе в помощь
честно говоря, не понимаю, чем это поможет ТС-у ?

Ну будет он получать html-код страницы не с помощью COM-объекта XMLHTTP, а с помощью curl-а, - и что дальше ?
У него нет проблемы с получением html-кода, у него проблема с тем как распарсить этот полученный код, особенно в случае если код "кривоватый" ...
19 июл 19, 13:39    [21930218]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
ferzmikk
Member

Откуда:
Сообщений: 1973
court
У него нет проблемы с получением html-кода, у него проблема с тем как распарсить этот полученный код, особенно в случае если код "кривоватый" ...
Если Вы про HTML-код из файла, то это пока условный пример для экспериментирования выгрузки данные из сайта, чтобы потом выгружать из реального примера.
19 июл 19, 13:44    [21930223]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
court
Member

Откуда:
Сообщений: 1858
ferzmikk
court
У него нет проблемы с получением html-кода, у него проблема с тем как распарсить этот полученный код, особенно в случае если код "кривоватый" ...
Если Вы про HTML-код из файла, то это пока условный пример для экспериментирования выгрузки данные из сайта, чтобы потом выгружать из реального примера.
Нет-нет, я в принципе, про любой сайт.
19 июл 19, 13:45    [21930224]     Ответить | Цитировать Сообщить модератору
 Re: VBA и WEB  [new]
Konst_One
Member

Откуда:
Сообщений: 11493
с такими знаниями никакой динамический парсер не напишешь, так что ТСу придётся делать что-то кривенькое и с ограниченными возможностями
19 июл 19, 13:46    [21930227]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7   вперед  Ctrl      все
Все форумы / Microsoft Office Ответить