powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA и WEB
169 сообщений из 169, показаны все 7 страниц
VBA и WEB
    #39835679
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Есть задача: написать макрос, который автоматизирует выгрузку данных из сайта.

Особенности:
- Выгружает основной список с колонками. В каждой строке в определенной колонке есть ссылка
- Если зайти на эту ссылку, то выходим на новую страницу этого же элемента: на таблицу со всеми свойствами. В другой закладке этой же страницы элемента есть дочерний список. Есть ссылка для скачивание файла.
- Основной список разделен на страницы, присутствует фильтрация.

Есть вопросы. Скажите,
1. Для выгрузки данных какой лучше использовать объект: CreateObject("MSXML2.XMLHTTP") или CreateObject("Microsoft.XMLHTTP")? Или лучше использовать какой то другой объект?
2. Как выдергивать список? Только через полученный исходный код как текст, и потом через цикл и как то по тегам выдергивать элементы? Или есть специальная команда для выдергивании списков?
3. Если список разделен на страницы, то получится выгрузить сразу все страницы? Или только по странично? Если выгружать по странично, то важно учесть, что может быть такое, что какой то элемент списка в какой то момент времени может удалиться, добавиться или переместиться. Возможно ли это учесть?
...
Рейтинг: 0 / 0
VBA и WEB
    #39835740
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

1. Говорят, что MSXML2 более новый namespace, и вроде рекомендуют его.
2. Для кролинга/скрапинга лучше воспользоваться HTMLDocument, и далее при помощи его функционала выдергивать, что нужно. Не помню, но возможно, там даже есть XPath, что существенно облегчит жизнь.
3. Что значит "список разделен на страницы"? Посмотрите как выглядит html и, исходя из этого, парсите.
...
Рейтинг: 0 / 0
VBA и WEB
    #39835745
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyferzmikk,

1. Говорят, что MSXML2 более новый namespace, и вроде рекомендуют его.Файлы скачивает?
...
Рейтинг: 0 / 0
VBA и WEB
    #39836046
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy2. Для кролинга/скрапинга лучше воспользоватьсяHTMLDocument, и далее при помощи его функционала выдергивать, что нужно. Не помню, но возможно, там даже есть XPath, что существенно облегчит жизнь.Возникает вопрос как это все реализовывать в VBA. В интернете мало инфо на эту тему.
...
Рейтинг: 0 / 0
VBA и WEB
    #39836114
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
именно потому что у vba нет соответствующих возможностей вы и создаете объект
CreateObject("MSXML2.XMLHTTP")
и пользуетесь его свойствами и методами.
...
Рейтинг: 0 / 0
VBA и WEB
    #39836122
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объект "MSXML2.XMLHTTP" относится к JavaScript?
...
Рейтинг: 0 / 0
VBA и WEB
    #39836128
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkОбъект "MSXML2.XMLHTTP" относится к JavaScript?нет


на форуме полно примеров, которые легко находятся по словам MSXML2.XMLHTTP
...
Рейтинг: 0 / 0
VBA и WEB
    #39836315
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk1. Для выгрузки данных какой лучше использовать объект: CreateObject("MSXML2.XMLHTTP") или CreateObject("Microsoft.XMLHTTP")? Или лучше использовать какой то другой объект?
Экселем парси, - "дешево и сердито"
...
Рейтинг: 0 / 0
VBA и WEB
    #39836571
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy3. Что значит "список разделен на страницы"? Посмотрите как выглядит html и, исходя из этого, парсите.
Первая страница http://aaaaa.ru/bbbbb/
Вторая страница http://ааааа.ru/bbbbb/?page=2

Как определить всего таких страниц?
...
Рейтинг: 0 / 0
VBA и WEB
    #39836579
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VBA использую объекты InternetExplorer и HTMLDocument . В объекте пока не нахожу метода, который определяет количество всего таких страниц.
...
Рейтинг: 0 / 0
VBA и WEB
    #39836580
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В коде страницы это количество находится здесь
<span class="dots">...</span> <a href="/aaaaa/?page=15000">15000</a>

Я правильно понимаю, что надо вытаскивать после page= и "> ?
...
Рейтинг: 0 / 0
VBA и WEB
    #39836625
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

Судя по вопросам, Вам для начала стоит подтянуть знания про HTML и протокол HTTP(S). И даже, возможно, написать Hello World веб-страничку.
...
Рейтинг: 0 / 0
VBA и WEB
    #39836672
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyподтянуть знания про HTML и протокол HTTP(S)бгггы !

а чё не сразу TCP/IP какое-нибудь ? :)
ТСу нужно распарсить какую-то несчастную страничку, а ты его сразу посылаешь "куда по дальше" "протоколы учить" :)

-------------------------------------------

ТС,

разбирать HTML DOM - дело предельно неблагодарное !
Редко когда повезёт, и DOM будет валидным XML-ем и его можно загрузить XMLDOMDocument и разобрать "по-человечески" каким-нибудь XPath-ем :)
Разве что это будет сайт в строгом соответствии стандарту HTML5 (?)

В лучшем случае, это "выкусить" строковыми функциями требуемый "кусок" DOM-а, который будет валидным, и разбирать его в XMLDOMDocument-е

По этому, ещё раз, может не дошло сразу: попробуй открыть свою ссылку в Экселе (Файл-Открыть-заряжаешь свою ссылку на страницу-"Открыть") и посмотреть на результат.
"Бегать" по ячейкам, всё-таки, на порядок проще, чем парсить строковыми функциями "кривой" DOM
...
Рейтинг: 0 / 0
VBA и WEB
    #39836839
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtпопробуй открыть свою ссылку в Экселе (Файл-Открыть-заряжаешь свою ссылку на страницу-"Открыть") и посмотреть на результат.
"Бегать" по ячейкам, всё-таки, на порядок проще, чем парсить строковыми функциями "кривой" DOM
Открывает долго. Вывелось по ячейкам.
...
Рейтинг: 0 / 0
VBA и WEB
    #39836850
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkОткрывает долго.не дольше чем полная загрузка в ИЕ
ferzmikkВывелось по ячейкам.Ну ? Дальше алгоритм понятен ?
1. Ходишь по нужным ячейкам - собираешь лут нужные данные, сохраняешь нужные данные
2. Ходишь по другим нужным ячейкам - собираешь ссылки ("В каждой строке в определенной колонке есть ссылка")
3. Ходишь по собранным ссылкам и повторяешь пп.1,2
4. ...
5. PROFIT

Всё это, разумеется, программно, через автоматизацию Экселя
...
Рейтинг: 0 / 0
VBA и WEB
    #39836868
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtНу ? Дальше алгоритм понятен ?
1. Ходишь по нужным ячейкам - собираешь лут нужные данные, сохраняешь нужные данные
2. Ходишь по другим нужным ячейкам - собираешь ссылки ("В каждой строке в определенной колонке есть ссылка")
3. Ходишь по собранным ссылкам и повторяешь пп.1,2
4. ...
5. PROFIT

Всё это, разумеется, программно, через автоматизацию Экселя
Сама идея понятна. Как вариант. Учитывая, что нужная ячейка имеет свою координату (например, заголовок таблицы, название первого столбца таблицы, значение первой строки первой колонки таблицы и т.д.) и после обновления могут быть сдвиги. В качестве ориентира тогда нужно брать, например заголовок колонки и последующие шаги по строкам. В ячейках (значения строк таблицы) присутствуют перенос строк и выводит несколько ячеек, а остальные ячейки объединяются. Поэтому такой момент надо учитывать.
...
Рейтинг: 0 / 0
VBA и WEB
    #39836905
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой фрагмент работающего кода.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim IE As Object, Html As Object
Set IE = CreateObject("InternetExplorer.Application")
Set Html = IE.Document
'Вытаскиваем таблицу
Html.querySelectorAll("table tr")
'Вытаскиваем столбцы строки N
Html.querySelectorAll("table tr").Item(N).querySelectorAll("th,td")
'Вытаскиваем значения каждого столбца строки N
Html.querySelectorAll("table tr").Item(N).querySelectorAll("th,td").Item(I).innertext


Если вместо объекта "InternetExplorer.Application" использовать объект "MSXML2.XMLHTTP", то пишем такой код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
Set Html = CreateObject("htmlFile")
XMLHTTP.Open "GET", URL, False
XMLHTTP.SEND
If XMLHTTP.Status = 200 Then
    Html.body.innerHTML = XMLHTTP.responseText
    Html.querySelectorAll("table tr")    'Здесь возникает ошибка


Выдает ошибку "Object doesn't support this property or method".

Как из объекта "MSXML2.XMLHTTP" вытащить Document, чтобы присвоить переменной Html?
...
Рейтинг: 0 / 0
VBA и WEB
    #39836938
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMLHTTP.responseText

вы его смотрели?
...
Рейтинг: 0 / 0
VBA и WEB
    #39836970
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One XMLHTTP.responseText

вы его смотрели?
Если Вы про возвращаемые типы, то у обоих объектов Html.body.innerHTML и XMLHTTP.responseText возвращаемый тип Variant/String.

Если Вы про возвращаемое значение XMLHTTP.responseText
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<!DOCTYPE html>
<html         lang="ru">
<head>
<link rel="stylesheet" type="text/css" href="/media/aaaaa/css/font-awesome.min.css">
<link type="text/css" href="/media/aaaaa/lib/jquery-ui/jquery-ui.css" rel="stylesheet">
<link type="text/css" href="/media/aaaaa/lib/swiper/swiper.css" rel="stylesheet">
<meta charset="windows-1251">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Заголовк</title>
...
...
Рейтинг: 0 / 0
VBA и WEB
    #39836971
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk
Код: vbnet
1.
2.
    Html.body.innerHTML = XMLHTTP.responseText
    Html.querySelectorAll("table tr")    'Здесь возникает ошибка



что-то типа
Код: vbnet
1.
Html.write XMLHTTP.responseText


должно быть
...
Рейтинг: 0 / 0
VBA и WEB
    #39836993
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtчто-то типа
Код: vbnet
1.
Html.write XMLHTTP.responseText


должно быть
Код: vbnet
1.
2.
3.
'Html.body.innerHTML = XMLHTTP.responseText
Html.write XMLHTTP.responseText
Html.querySelectorAll("table tr")    'Выдает диалоговое окно. Если нажать на "Да" или "Нет", то потом возникает та же ошибка.
...
Рейтинг: 0 / 0
VBA и WEB
    #39837005
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

а я бы php взял, удобнее гораздо
...
Рейтинг: 0 / 0
VBA и WEB
    #39837007
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ferzmikk,

а я бы php взял, удобнее гораздо
php не знаю. Пока использую VBA
...
Рейтинг: 0 / 0
VBA и WEB
    #39837032
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

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

Код: php
1.
2.
3.
        $c = file_get_contents($url);
        $doc = new DOMDocument();
        $doc->loadHTML($c);


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

Код: php
1.
$doc->getElementsByTagName('a');
...
Рейтинг: 0 / 0
VBA и WEB
    #39837039
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk
Код: vbnet
1.
2.
3.
'Html.body.innerHTML = XMLHTTP.responseText
Html.write XMLHTTP.responseText
Html.querySelectorAll("table tr")    'Выдает диалоговое окно. Если нажать на "Да" или "Нет", то потом возникает та же ошибка.


Почему отображается такое диалоговое окно и почему показывает ошибку? Как правильно написать?
...
Рейтинг: 0 / 0
VBA и WEB
    #39837052
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

подключи в Reference эту библиотеку - Microsoft HTML Object Library
и используй
Код: vbnet
1.
Dim Html As HTMLDocument
...
Рейтинг: 0 / 0
VBA и WEB
    #39837058
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtferzmikk,

подключи в Reference эту библиотеку - Microsoft HTML Object Library
и используй
Код: vbnet
1.
Dim Html As HTMLDocument


Получилось. Только почему не срабатывает, когда пишем так Set Html = CreateObject("htmlFile")? По логике изменили только позднее связывание на ранее.


Теперь появляется ошибка на другой строке
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
'Set Html = CreateObject("htmlFile")
Dim Html As New HTMLDocument
...
Html.body.innerHTML = XMLHTTP.responseText
Html.querySelectorAll("table tr")
For N = 1 To .Length - 1
        Html.querySelectorAll("table tr").Item(N).querySelectorAll("th,td") 'Выдает ошибку "Object doesn't support this property or method".


Почему так? Как правильно написать?
...
Рейтинг: 0 / 0
VBA и WEB
    #39837061
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

у тебя ж подключена библиотека
вот и зайди по ф2 и посмотри что за класс у Итема и какие у него методы
...
Рейтинг: 0 / 0
VBA и WEB
    #39837069
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtferzmikk,

у тебя ж подключена библиотека
вот и зайди по ф2 и посмотри что за класс у Итема и какие у него методы
Правильно смотрю?
...
Рейтинг: 0 / 0
VBA и WEB
    #39837071
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использование CreateObject("InternetExplorer.Application"). Работающий код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Sub ПолучитьТабличноеСодержимое()
    'Dim IE As New InternetExplorer, Html As HTMLDocument
    Dim IE As Object, Html As Object
    Dim I As Long, N As Long, Row As Long, Column As Long
    
    Set IE = CreateObject("InternetExplorer.Application")
        
    With IE
        .Visible = False
        .Navigate "http://aaaaa.ru/bbbbb/"
        While .Busy = True Or .ReadyState < 4
            DoEvents
        Wend
        Set Html = .Document
    
        With Html.querySelectorAll("table tr")
            For N = 1 To .Length - 1
                With .Item(N).querySelectorAll("th,td")
                    For I = 0 To .Length - 1
                        Column = Column + 1
                        ThisWorkbook.Worksheets("Лист1").Cells(Row + 1, Column) = .Item(I).innertext
                    Next I
                    Column = 0
                    Row = Row + 1
                End With
            Next N
        End With
    End With
    
    Set Html = Nothing
    Set IE = Nothing
End Sub

Использование CreateObject("MSXML2.XMLHTTP"). Не работающий код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Sub ПолучитьТабличноеСодержимое()
Dim XMLHTTP As Object '
'Dim Html As Object
Dim URL As String, txt As String
URL = "http://aaaaa.ru/bbbbb/"

Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
'Set Html = CreateObject("htmlFile")
Dim Html As New HTMLDocument

XMLHTTP.Open "GET", URL, False
XMLHTTP.SetRequestHeader "Accept", "..." 'Сокращено для примера
XMLHTTP.SetRequestHeader "User-Agent", "..." 'Сокращено для примера
XMLHTTP.SEND

Dim I As Long, Column As Long, N As Long, Row As Long

If XMLHTTP.Status = 200 Then
    Html.body.innerHTML = XMLHTTP.responseText
    With Html.querySelectorAll("table tr")
        For N = 1 To .Length - 1
            With .Item(N).querySelectorAll("th,td") 'Выдает ошибку "Object doesn't support this property or method".
                For I = 0 To .Length - 1
                    Column = Column + 1
                    ThisWorkbook.Worksheets("Лист1").Cells(Row + 1, Column) = .Item(I).innertext
                Next I
                Column = 0
                Row = Row + 1
            End With
        Next N
    End With
Else
    MsgBox ("Отсутствует соединение ...")
End If

Set XMLHTTP = Nothing
End Sub


Фишка в том, что в первом варианте метод Html.querySelectorAll("table tr").Item(N).querySelectorAll ("th,td") работает, а во втором - не работает. В первом варианте для объекта HTMLDocument позднее связывание, а во втором - ранее.

Как правильно написать код?
...
Рейтинг: 0 / 0
VBA и WEB
    #39837086
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtiMrTidyподтянуть знания про HTML и протокол HTTP(S)бгггы !

а чё не сразу TCP/IP какое-нибудь ? :)
ТСу нужно распарсить какую-то несчастную страничку, а ты его сразу посылаешь "куда по дальше" "протоколы учить" :)

Мда, лихо. По-вашему лучше несколько суток тыкаться и просить о помощи, чем почитать документацию, пусть даже в течение дня. Ну, туда Вам и дорога.

courtТС,

разбирать HTML DOM - дело предельно неблагодарное !
Редко когда повезёт, и DOM будет валидным XML-ем и его можно загрузить XMLDOMDocument и разобрать "по-человечески" каким-нибудь XPath-ем :)
Разве что это будет сайт в строгом соответствии стандарту HTML5 (?)

В лучшем случае, это "выкусить" строковыми функциями требуемый "кусок" DOM-а, который будет валидным, и разбирать его в XMLDOMDocument-е

По этому, ещё раз, может не дошло сразу: попробуй открыть свою ссылку в Экселе (Файл-Открыть-заряжаешь свою ссылку на страницу-"Открыть") и посмотреть на результат.
"Бегать" по ячейкам, всё-таки, на порядок проще, чем парсить строковыми функциями "кривой" DOM

А че не сторонний апп сразу? Человеку ж просто нужно несчастную страничку распарсить. На XPath свет клином не сошелся.
...
Рейтинг: 0 / 0
VBA и WEB
    #39837101
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

Вот пример на скорую руку. Чтобы более или менее удобно парсить дочерние элементы можно написать маленькую функцию, что будет возвращать элемент или элементы по заданному условию или условиям.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Option Explicit

Sub Test()

Dim xmlHttpReq As MSXML2.XMLHTTP60
Dim doc As MSHTML.HTMLDocument
Dim elem As MSHTML.HTMLHtmlElement
Dim node As MSHTML.HTMLHtmlElement

Set xmlHttpReq = New MSXML2.XMLHTTP60

xmlHttpReq.Open "GET", "https://www.sql.ru/forum/1314633-2/vba-i-web", False
xmlHttpReq.send

If xmlHttpReq.readyState = 4 And xmlHttpReq.Status = 200 Then
    Set doc = New MSHTML.HTMLDocument
    doc.body.innerHTML = xmlHttpReq.responseText
    Set elem = doc.querySelector("table.sort_options")
    For Each node In elem.ChildNodes
        Debug.Print node.innerText
    Next
Else
    MsgBox "Error" & vbNewLine & "Ready State: " & xmlHttpReq.readyState & vbNewLine & "Status: " & xmlHttpReq.Status
End If


End Sub
...
Рейтинг: 0 / 0
VBA и WEB
    #39837156
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy,

В общем, в выделенной строке изменил запись. Заработало.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Sub ПолучитьТабличноеСодержимое()
Dim XMLHTTP As Object '
'Dim Html As Object
Dim URL As String, txt As String
URL = "http://aaaaa.ru/bbbbb/"

Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
'Set Html = CreateObject("htmlFile")
Dim Html As New HTMLDocument

XMLHTTP.Open "GET", URL, False
XMLHTTP.SetRequestHeader "Accept", "..." 'Сокращено для примера
XMLHTTP.SetRequestHeader "User-Agent", "..." 'Сокращено для примера
XMLHTTP.SEND

Dim I As Long, Column As Long, N As Long, Row As Long

If XMLHTTP.Status = 200 Then
    Html.body.innerHTML = XMLHTTP.responseText
    With Html.querySelectorAll("table tr")
        For N = 1 To .Length - 1
            With .Item(N).ChildNodes 'querySelectorAll("th,td") 
                For I = 0 To .Length - 1
                    Column = Column + 1
                    ThisWorkbook.Worksheets("Лист1").Cells(Row + 1, Column) = .Item(I).innertext
                Next I
                Column = 0
                Row = Row + 1
            End With
        Next N
    End With
Else
    MsgBox ("Отсутствует соединение ...")
End If

Set XMLHTTP = Nothing
End Sub

...
Рейтинг: 0 / 0
VBA и WEB
    #39837157
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Пока не понятно как узнать в таблице сколько всего страниц и как выгружать с заданным фильтром. Как это в коде должно выглядеть?

2. В таблице в одной колонке есть перенос строк, то есть несколько подстрок. У этих значений есть ссылки.
Фрагмент HTML-кода таблицы
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
<tr class=" ">
	<td>Значение1 столбца1</td>
        <td style="text-align: center;">
        	<a href="?notificationId=00001">Значение1_1 столбца2</a>
        	<br><br>
                <a href="?notificationId=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="?notificationId=00001">Значение2_1 столбца2</a>
        	<br><br>
                <a href="?notificationId=00001&lotId=00002">Значение2_2 столбца2</a></td>
        <td>Значение2 столбца3</td>
        <td nowrap>Значение2 столбца4</td>
        <td>Значение2 столбца5</td>
</tr>
<tr class=" ">
       <td>Значение3 столбца1</td>
        <td style="text-align: center;">
        	<a href="?notificationId=00001">Значение3_1 столбца2</a>
        	<br><br>
                <a href="?notificationId=00001&lotId=00003">Значение3_2 столбца2</a></td>
        <td>Значение3 столбца3</td>
        <td nowrap>Значение3 столбца4</td>
        <td>Значение3 столбца5</td>
</tr>

Как в коде прописать так, чтобы выгрузить эти значения как массив и ссылки к нему?
...
Рейтинг: 0 / 0
VBA и WEB
    #39837161
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyЧтобы более или менее удобно парсить дочерние элементы можно написать маленькую функцию, что будет возвращать элемент или элементы по заданному условию или условиям
Что за дочерние элементы? Подстроки?
...
Рейтинг: 0 / 0
VBA и WEB
    #39837243
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,


ferzmikkiMrTidyЧтобы более или менее удобно парсить дочерние элементы можно написать маленькую функцию, что будет возвращать элемент или элементы по заданному условию или условиям
Что за дочерние элементы? Подстроки?

Опять же, почитайте документацию на тему HTML и XML, да и CSS не навредит. Посвятите этому всему 1 полный день. А потом поговорим.
...
Рейтинг: 0 / 0
VBA и WEB
    #39837244
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyМда, лихо. По-вашему лучше несколько суток тыкаться и просить о помощи, чем почитать документацию, пусть даже в течение дня. Ну, туда Вам и дорога.Да где ж я против "чтения документации" ? :)
Исключительно "за" ! :))
Только я за ту "документацию", которая "по теме".
Вот, например, какое отношение к парсингу имеет "HyperText Transfer Protocol" ? тем более Secure ? :)
По моему - никакого. Если бы ТС парсил не сайт в интернете, а сохраненные файлы "*.html" его вопрос никак бы не изменился ...
iMrTidyА че не сторонний апп сразу? Человеку ж просто нужно несчастную страничку распарсить. На XPath свет клином не сошелся.А эту претензию вообще не совсем понимаю ...
Форум по Ораклу Оффису, ТС делает в Экселе, - я ему предлагаю и парсить в Экселе ... что не так ?

Или речь про ХМЛ ?
Так ХМЛ - стандарт ! Причем, кроссплатформенный стандарт. Как HTML, к единству с которым, ХМЛ и "призывает" HTML5 :)
А в рамках стандарта ХМЛ есть стандарт доступа к данным - XPath ...
... при чём здесь "сторонний апп" ... ?
...
Рейтинг: 0 / 0
VBA и WEB
    #39837253
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtiMrTidyМда, лихо. По-вашему лучше несколько суток тыкаться и просить о помощи, чем почитать документацию, пусть даже в течение дня. Ну, туда Вам и дорога.Да где ж я против "чтения документации" ? :)
Исключительно "за" ! :))
Только я за ту "документацию", которая "по теме".
Вот, например, какое отношение к парсингу имеет "HyperText Transfer Protocol" ? тем более Secure ? :)
По моему - никакого. Если бы ТС парсил не сайт в интернете, а сохраненные файлы "*.html" его вопрос никак бы не изменился ...
iMrTidyА че не сторонний апп сразу? Человеку ж просто нужно несчастную страничку распарсить. На XPath свет клином не сошелся.А эту претензию вообще не совсем понимаю ...
Форум по Ораклу Оффису, ТС делает в Экселе, - я ему предлагаю и парсить в Экселе ... что не так ?

Или речь про ХМЛ ?
Так ХМЛ - стандарт ! Причем, кроссплатформенный стандарт. Как HTML, к единству с которым, ХМЛ и "призывает" HTML5 :)
А в рамках стандарта ХМЛ есть стандарт доступа к данным - XPath ...
... при чём здесь "сторонний апп" ... ?

Не заметно, чтобы Вы были ЗА документацию.

http(s) при том, что человек задействует библиотеки, которые, к примеру, используют GET, и наверняка понятия не имеет что этот GET значит. Я же не пишу, что нужно стать экспертом по HTTP(S). Кстати, TCP/IP, который Вы почему-то упомянули, к делу прямого отношения не имеет, см. OSI. Хотя, я считаю, уважающий себя программист должен иметь небольшое представление о всех семи уровнях.

Все прекрасно делается без сторонних приложений. Завтра он перетащит проект из Excel в Word или Access, а парсить html так и не научится.
...
Рейтинг: 0 / 0
VBA и WEB
    #39837418
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyСудя по вопросам, Вам для начала стоит подтянуть знания про HTML и протокол HTTP(S). И даже, возможно, написать Hello World веб-страничку.
iMrTidyОпять же, почитайте документацию на тему HTML и XML, да и CSS не навредит. Посвятите этому всему 1 полный день. А потом поговорим.
Начал изучать. Написал такую простую страницу с таблицей. Пока без использования стилей
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
<html><head><title>Тестовая страница</title></head>
<body>
<H1>Статистика</H1>
<H2>Таблица 1</H1>
Период: 01.01.2019-30.06.2019<br>
<br>

<table>
  <tbody>
    <tr>
      <th>Колонка 1</th>
      <th>Строка 1 Колонка 2<br>Строка 2 Колонка 2</th>
      <th>Колонка 3</th>
      <th>Колонка 4</th>
      <th>Колонка 5</th>
    </tr>
    <tr>
      <td>Значение 1.1</td>
      <td>
       <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>Значение 1.4</td>
      <td>Значение 1.5</td>
    </tr>
    <tr>
      <td>Значение 2.1</td>
      <td>
        <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>Значение 2.4</td>
      <td>Значение 2.5<td>
    </tr>
</table>

<span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>

...
Рейтинг: 0 / 0
VBA и WEB
    #39837590
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk1. Пока не понятно как узнать в таблице сколько всего страниц. Как это в коде должно выглядеть?

2. В таблице в одной колонке есть перенос строк, то есть несколько подстрок. У этих значений есть ссылки. Как в коде прописать так, чтобы выгрузить эти значения как массив и ссылки к нему?
...
Рейтинг: 0 / 0
VBA и WEB
    #39837670
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

Браво! Это очень похвально. Теперь давайте возьмем один вопрос и разберемся с ним.

"...как узнать в таблице сколько всего страниц..." - постановка вопроса, к сожалению, неверная. В HTML таблица не делиться на страницы. Ваши "страницы" это ссылки на веб-странички, в которых, по-видимому, содержится продолжение таблицы. В примере выше 10 000 нужно вытаскивать из элемента <a> - anchor element.

Если взять пример, что я приводил, и заменить в нем документ на Ваш, то можно воспользоваться селектором:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Option Explicit

Sub Test()

Dim xmlHttpReq As MSXML2.XMLHTTP60
Dim doc As MSHTML.HTMLDocument
Dim elems As MSHTML.IHTMLDOMChildrenCollection
Dim elem As MSHTML.IHTMLElement
Dim i As Integer

Set xmlHttpReq = New MSXML2.XMLHTTP60

xmlHttpReq.Open "GET", "file:///D:/Test/test.html", False
xmlHttpReq.send

Set doc = New MSHTML.HTMLDocument
doc.body.innerHTML = xmlHttpReq.responseText
Set elems = doc.querySelectorAll("body > a")
Set elem = elems(elems.Length - 1)
Debug.Print elem.innerText

End Sub



Для Вашего реального случая, скорее всего, можно будет обойтись одним css selector, поэтому почитайте, что это такое и как с этим работать. И после этого продолжим.
...
Рейтинг: 0 / 0
VBA и WEB
    #39837727
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy,

Возникает ошибка. Почему у объекта elem значение Nothing?
...
Рейтинг: 0 / 0
VBA и WEB
    #39837728
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в окне Locals в объекте elems нажать на плюсик, то программа зависает. Почему так?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838109
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

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

status 0 - в данном случае, нормально.

elem может быть null, если Ваш html отличается от моего.

Нажатие на [+] приводит к крашу, т.к. это такой баг такая фича типа данных, ничего с этим не поделаешь.

Вы про селекторы почитали?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838279
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Провожу эксперимент
Есть простой HTML код
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
<html><head><title>Тестовая страница</title></head>
<body>
<H1>Статистика</H1>
<H2>Таблица 1</H1>
Период: 01.01.2019-30.06.2019<br>
<br>

<table>
  
    <tr>
      <th>Колонка 1</th>
      <th>Строка 1 Колонка 2<br>Строка 2 Колонка 2</th>
      <th>Колонка 3</th>
      <th>Колонка 4</th>
      <th>Колонка 5</th>
    </tr>
    <tr>
      <td>Значение 1.1</td>
      <td>
       <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>Значение 1.4</td>
      <td>Значение 1.5</td>
    </tr>
    <tr>
      <td>Значение 2.1</td>
      <td>
        <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>Значение 2.4</td>
      <td>Значение 2.5<td>
    </tr>
   
</table>

<span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>

Есть макрос
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub Test2()

Dim xmlHttpReq As MSXML2.XMLHTTP60
Dim doc As MSHTML.HTMLDocument
Dim elems1 As MSHTML.IHTMLDOMChildrenCollection, elems2 As MSHTML.IHTMLDOMChildrenCollection, elems3 As MSHTML.IHTMLDOMChildrenCollection

Set xmlHttpReq = New MSXML2.XMLHTTP60

xmlHttpReq.Open "GET", "file:///C:/Users/Acer/Desktop/Сайт/главная страница2.htm", False
xmlHttpReq.send

Set doc = New MSHTML.HTMLDocument
doc.body.innerHTML = xmlHttpReq.responseText
Set elems1 = doc.querySelectorAll("html")
Set elems2 = doc.querySelectorAll("table")
Set elems3 = doc.querySelectorAll("body > a")

End Sub

Почему метод querySelectorAl l тег "html" находит, а теги "table" и "body > a" не находит?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838280
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyВы про селекторы почитали?Читаю
...
Рейтинг: 0 / 0
VBA и WEB
    #39838307
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

html у Вас не валидный. Элемент <table> находится внутри незакрытого элемента <H2>.

Хорошей практикой считается использование строчных букв в названиях нодов и атрибутов.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838326
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyhtml у Вас не валидный. Элемент <table> находится внутри незакрытого элемента <H2>.Исправил
Код: html
1.
<h2>Таблица 1</h2>


Результат такой же
...
Рейтинг: 0 / 0
VBA и WEB
    #39838334
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обалдеть, ему ещё и валидный html нужен

давно пора завязывать с такими поделками
...
Рейтинг: 0 / 0
VBA и WEB
    #39838338
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
VBA и WEB
    #39838353
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

html:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
<html>
<head>
    <title>Тестовая страница</title>
</head>
<body>
    <h1>Статистика</h1>
    <h2>
        Таблица 1</h2>
        Период: 01.01.2019-30.06.2019<br>
        <br>

        <table>

            <tr>
                <th>Колонка 1</th>
                <th>Строка 1 Колонка 2<br>Строка 2 Колонка 2</th>
                <th>Колонка 3</th>
                <th>Колонка 4</th>
                <th>Колонка 5</th>
            </tr>
            <tr>
                <td>Значение 1.1</td>
                <td>
                    <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>Значение 1.4</td>
                <td>Значение 1.5</td>
            </tr>
            <tr>
                <td>Значение 2.1</td>
                <td>
                    <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>Значение 2.4</td>
                <td>Значение 2.5
                <td>
            </tr>

        </table>

        <span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>


VBA:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Option Explicit

Sub Test()

Dim xmlHttpReq As MSXML2.XMLHTTP60
Dim doc As MSHTML.HTMLDocument
Dim elems1 As MSHTML.IHTMLDOMChildrenCollection
Dim elems2 As MSHTML.IHTMLDOMChildrenCollection
Dim elems3 As MSHTML.IHTMLDOMChildrenCollection

Set xmlHttpReq = New MSXML2.XMLHTTP60

xmlHttpReq.Open "GET", "file:///C:/Test/HTMLPage1.html", False
xmlHttpReq.send

Set doc = New MSHTML.HTMLDocument
doc.body.innerHTML = xmlHttpReq.responseText
Set elems1 = doc.querySelectorAll("html")
Set elems2 = doc.querySelectorAll("table")
Set elems3 = doc.querySelectorAll("body > a")

Debug.Print elems1.Length
Debug.Print elems2.Length
Debug.Print elems3.Length
Debug.Print elems3(elems3.Length - 1).innerText

End Sub


Результат:
...
Рейтинг: 0 / 0
VBA и WEB
    #39838356
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)обалдеть, ему ещё и валидный html нужен

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

Не согласен, если класс будет принимать и html, и балалайку, то нарушается приницип Single Responsibility. Если очень нужно, то IE поправит, или сторонние библиотеки. Но, гарантий, что невалидный html попрвится именно так, как нужно, нет. Поэтому публиковать нужно корректный html изначально.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838406
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy,

вот у вас ЧУЖОЙ сайт, в браузере он показывается НОРМАЛЬНО
если мне будет нужно со своего сайта достать инфу, я её точно в html передавать не буду

html-парсер должен работать с тем, что есть, и наиболее адекватно
...
Рейтинг: 0 / 0
VBA и WEB
    #39838408
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внесу немного ясности на счет валидности html.

XMLHTTP60 как класс для работы с http не поправляет результат полученный от сервера, что ожидаемо.
HTMLDocument как класс для работы с html документами поправялет задаваемый ему html до валидного, но гарантий того, что внесенные правки буду именно теми, что ожидаются нет. Такое поведение ожидаемо. В ряде случаев могут потребоваться сторонние библиотеки, или менять ответ с сервера вручную.
IE как приложение, включащее в себя несколько библиотек, делает и то, и другое, и третье, что от него и ожидается.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838412
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidy,

вот у вас ЧУЖОЙ сайт, в браузере он показывается НОРМАЛЬНО
если мне будет нужно со своего сайта достать инфу, я её точно в html передавать не буду

html-парсер должен работать с тем, что есть, и наиболее адекватно

Любой браузер, как и IE имеет встроенный механизм правки html до валидного. Браузеры могут по-разному поправить исходный документ, в зависимости от "тяжести" ошибок.

В свете моего разъяснения, XMLHTTP60, HTMLDocument как и IE не являются html парсерами по своей природе. ТС как раз и пишет парсер, пользуюясь функционалом, упомянутых библиотек.

<h1>bla bla</h2> - явная ошибка, хоть HTMLDocument и правит ее на <h1>bla bla</h1>, это не значит, что html валидный и нужно писать так дальше.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838413
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy,
естественно никто гарантий не даёт, их и не может быть
IE уже никто серьёзно не поддерживает

Проксировать и подправлять специально для IE - это мазохизм чистой воды.
Если в распространённом браузере всё показывается нормально, значит и парсер не должен ему уступать
...
Рейтинг: 0 / 0
VBA и WEB
    #39838416
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy<h1>bla bla</h2> - явная ошибка, хоть HTMLDocument и правит ее на <h1>bla bla</h1>, это не значит, что html валидный и нужно писать так дальше.значит, не значит ...
что делать то?
Предлагаете письмо написать создателю: "мы тут ваш сайт мониторим, цены с него сдираем, подправь, пожалуйста, вот эту, эту и эту страничку, она у вас с ошибками" ?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838422
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такую наглость проявляли на моей памяти только гугл и яндекс, но у них аргументы есть
...
Рейтинг: 0 / 0
VBA и WEB
    #39838430
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidy<h1>bla bla</h2> - явная ошибка, хоть HTMLDocument и правит ее на <h1>bla bla</h1>, это не значит, что html валидный и нужно писать так дальше.значит, не значит ...
что делать то?
Предлагаете письмо написать создателю: "мы тут ваш сайт мониторим, цены с него сдираем, подправь, пожалуйста, вот эту, эту и эту страничку, она у вас с ошибками" ?

Если честно, то я уже не понимаю о чем Вы.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838484
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал запустить макрос на другом компьютере - другая ошибка. На строке
Код: vbnet
1.
xmlHttpReq.send

появляется ошибка "Нельзя вызывать данный метод после вызова метода send".

На другом компьютере установлен Microsoft excel 2013 и Microsoft Excel 365.

Почему так?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838485
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyЕсли честно, то я уже не понимаю о чем Вы. Хорошо, по-русски: то что вы описываете тут уже 3-ю страницу неюзабельно в современных реалиях. Это просто очень дорого в создании и поддержке. За знания того, как накостылять HTMLDocument , что бы он "допетрил", никто не заплатит.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838486
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал запустить макрос на другом компьютере - другая ошибка. На строке
Код: vbnet
1.
xmlHttpReq.send

появляется ошибка "Нельзя вызывать данный метод после вызова метода send".

На другом компьютере установлен Microsoft excel 2013 и Microsoft Excel 365.

Почему так?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838490
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyРезультат:Из Вашего сообщения тот же самый html, тот же самый макрос, только путь к файлу другой. Но у меня такой же результат как и ранее.

Почему так?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838491
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkНа другом компьютере установлен Microsoft excel 2013 и Microsoft Excel 365.
У меня Microsoft excel 2010
...
Рейтинг: 0 / 0
VBA и WEB
    #39838493
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidyЕсли честно, то я уже не понимаю о чем Вы. Хорошо, по-русски: то что вы описываете тут уже 3-ю страницу неюзабельно в современных реалиях. Это просто очень дорого в создании и поддержке. За знания того, как накостылять HTMLDocument , что бы он "допетрил", никто не заплатит.

С чего это? У меня все прекрасно работает, как невалидный html, так и поправленный. Я же написал по-русски, что HTMLDocument автоматически доводит html до валидного. Что еще Вы от него ожидаете? Чтобы еще и парсил сам по-щучьему веленью?

Я думаю, что все дело в том, что Вы сами никогда не пробовали писать парсер на VBA, а беретесь судить. Возьмите код и попробуйте, а потом расскажете. VBA в принципе дорогое удовольствие в современных реалиях.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838494
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

Добавьте
Код: vbnet
1.
Debug.Print doc.doby.innerHTML


Что у Вас там?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838505
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyДобавьте
Код: vbnet
1.
Debug.Print doc.doby.innerHTML

Что у Вас там?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838506
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

Да, это я опечатку сделал. Там пусто?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838508
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyТам пусто?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838511
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyЗнаки вопроса, скорее всего, потому что у Вам нужно задать кириллицу для программ, которые не поддерживают юникод Вопрос может быть глупый, но где эта кириллица?

У меня windows 8.1 для одного языка.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838514
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkiMrTidyТам пусто?



Проверьте, что xmlHttpReq.responseText

Я полагаю, что файл не считывается, возможно, из-за пробелов, возможно, из-за кирилицы.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838515
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkiMrTidyЗнаки вопроса, скорее всего, потому что у Вам нужно задать кириллицу для программ, которые не поддерживают юникод Вопрос может быть глупый, но где эта кириллица?

У меня windows 8.1 для одного языка.



Да, нужен как раз 'Русский (Россия)'
...
Рейтинг: 0 / 0
VBA и WEB
    #39838521
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyПроверьте, что xmlHttpReq.responseText

Я полагаю, что файл не считывается, возможно, из-за пробелов, возможно, из-за кирилицы.
immediate
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<html><head><title>??????title></head>
<body>

<table>
  
    <tr>
      <th>???1</th>
      <th>?? 1 ???2<br>?? 2 ???2</th>
      <th>???3</th>
      <th>???4</th>
      <th>???5</th>
    </tr>
    <tr>
      <td>??? 1.1</td>
      <td>
       <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>??? 1.4</td>
      <td>??? 1.5</td>
    </tr>
    <tr>
      <td>??? 2.1</td>
      <td>
        <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>??? 2.4</td>
      <td>??? 2.5<td>
    </tr>
   
</table>

<span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>

Русский язык по логике не должен влиять, так как теги то на английском.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838522
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyДа, нужен как раз 'Русский (Россия)'Сейчас как и раньше стоит русский
...
Рейтинг: 0 / 0
VBA и WEB
    #39838525
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkiMrTidyПроверьте, что xmlHttpReq.responseText

Я полагаю, что файл не считывается, возможно, из-за пробелов, возможно, из-за кирилицы.
immediate
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<html><head><title>??????title></head>
<body>

<table>
  
    <tr>
      <th>???1</th>
      <th>?? 1 ???2<br>?? 2 ???2</th>
      <th>???3</th>
      <th>???4</th>
      <th>???5</th>
    </tr>
    <tr>
      <td>??? 1.1</td>
      <td>
       <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>??? 1.4</td>
      <td>??? 1.5</td>
    </tr>
    <tr>
      <td>??? 2.1</td>
      <td>
        <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>??? 2.4</td>
      <td>??? 2.5<td>
    </tr>
   
</table>

<span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>


Русский язык по логике не должен влиять, так как теги то на английском.

Такой html даже Chrome не открывает! У Вас title не закрыт. Вы же говорили, что тестировали именно тот html, что я выложил?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838579
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidykealon(Ruslan)пропущено...
Хорошо, по-русски: то что вы описываете тут уже 3-ю страницу неюзабельно в современных реалиях. Это просто очень дорого в создании и поддержке. За знания того, как накостылять HTMLDocument , что бы он "допетрил", никто не заплатит.

С чего это? У меня все прекрасно работает, как невалидный html, так и поправленный. Я же написал по-русски, что HTMLDocument автоматически доводит html до валидного. Что еще Вы от него ожидаете? Чтобы еще и парсил сам по-щучьему веленью?

Я думаю, что все дело в том, что Вы сами никогда не пробовали писать парсер на VBA, а беретесь судить. Возьмите код и попробуйте, а потом расскажете. VBA в принципе дорогое удовольствие в современных реалиях.плохо доводит
спотыкается на примитивных вещах

не путайте парсер и разбор содержимого, лет 10 назад HTMLDocument был крут конечно, но времена поменялись
...
Рейтинг: 0 / 0
VBA и WEB
    #39838582
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidyпропущено...


С чего это? У меня все прекрасно работает, как невалидный html, так и поправленный. Я же написал по-русски, что HTMLDocument автоматически доводит html до валидного. Что еще Вы от него ожидаете? Чтобы еще и парсил сам по-щучьему веленью?

Я думаю, что все дело в том, что Вы сами никогда не пробовали писать парсер на VBA, а беретесь судить. Возьмите код и попробуйте, а потом расскажете. VBA в принципе дорогое удовольствие в современных реалиях.плохо доводит
спотыкается на примитивных вещах

не путайте парсер и разбор содержимого, лет 10 назад HTMLDocument был крут конечно, но времена поменялись

Давайте конкретно на каких примитивных вещах он споткнется, на которых Google Chrome не споткнется?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838588
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)не путайте парсер и разбор содержимого, лет 10 назад HTMLDocument был крут конечно, но времена поменялись

Дайте-ка ссылочку, где объясняется что есть что.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838597
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyТакой html даже Chrome не открывает! У Вас title не закрыт.
Исходник
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
<html>
<head>
    <title>Тестовая страница</title>
</head>
<body>
    <h1>Статистика</h1>
    <h2>
        Таблица 1</h2>
        Период: 01.01.2019-30.06.2019<br>
        <br>

        <table>

            <tr>
                <th>Колонка 1</th>
                <th>Строка 1 Колонка 2<br>Строка 2 Колонка 2</th>
                <th>Колонка 3</th>
                <th>Колонка 4</th>
                <th>Колонка 5</th>
            </tr>
            <tr>
                <td>Значение 1.1</td>
                <td>
                    <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>Значение 1.4</td>
                <td>Значение 1.5</td>
            </tr>
            <tr>
                <td>Значение 2.1</td>
                <td>
                    <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>Значение 2.4</td>
                <td>Значение 2.5
                <td>
            </tr>

        </table>

        <span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>

Результат
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
<html>
<head>
    <title>??????title>
</head>
<body>
    <h1>????h1>
    <h2>
        ???</h2>
        ??: 01.01.2019-30.06.2019<br>
        <br>

        <table>

            <tr>
                <th>???1</th>
                <th>?? 1 ???2<br>?? 2 ???2</th>
                <th>???3</th>
                <th>???4</th>
                <th>???5</th>
            </tr>
            <tr>
                <td>??? 1.1</td>
                <td>
                    <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>??? 1.4</td>
                <td>??? 1.5</td>
            </tr>
            <tr>
                <td>??? 2.1</td>
                <td>
                    <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>??? 2.4</td>
                <td>??? 2.5
                <td>
            </tr>

        </table>

        <span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>

В title пропадают символы </ . Даже h1. Почему так?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838600
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если делать так
Исходник
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
<html>
<body>
        <table>

            <tr>
                <th>Колонка 1</th>
                <th>Строка 1 Колонка 2<br>Строка 2 Колонка 2</th>
                <th>Колонка 3</th>
                <th>Колонка 4</th>
                <th>Колонка 5</th>
            </tr>
            <tr>
                <td>Значение 1.1</td>
                <td>
                    <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>Значение 1.4</td>
                <td>Значение 1.5</td>
            </tr>
            <tr>
                <td>Значение 2.1</td>
                <td>
                    <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>Значение 2.4</td>
                <td>Значение 2.5
                <td>
            </tr>

        </table>

        <span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>

Результат
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
<html>
<body>
        <table>

            <tr>
                <th>???1</th>
                <th>?? 1 ???2<br>?? 2 ???2</th>
                <th>???3</th>
                <th>???4</th>
                <th>???5</th>
            </tr>
            <tr>
                <td>??? 1.1</td>
                <td>
                    <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>??? 1.4</td>
                <td>??? 1.5</td>
            </tr>
            <tr>
                <td>??? 2.1</td>
                <td>
                    <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>??? 2.4</td>
                <td>??? 2.5
                <td>
            </tr>

        </table>

        <span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>

...
Рейтинг: 0 / 0
VBA и WEB
    #39838603
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
responseText перекодирует в соответствии со своим разумением

с 3-й версии добавили responseStream для анализа
...
Рейтинг: 0 / 0
VBA и WEB
    #39838604
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidyпропущено...


С чего это? У меня все прекрасно работает, как невалидный html, так и поправленный. Я же написал по-русски, что HTMLDocument автоматически доводит html до валидного. Что еще Вы от него ожидаете? Чтобы еще и парсил сам по-щучьему веленью?

Я думаю, что все дело в том, что Вы сами никогда не пробовали писать парсер на VBA, а беретесь судить. Возьмите код и попробуйте, а потом расскажете. VBA в принципе дорогое удовольствие в современных реалиях.плохо доводит
спотыкается на примитивных вещах

не путайте парсер и разбор содержимого, лет 10 назад HTMLDocument был крут конечно, но времена поменялись
В данном случае это парсер или разбор содержимого?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838605
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy,
дело ваше, пользуйтесь если пользуется
я не собираюсь вам доказывать насколько мс отстал
...
Рейтинг: 0 / 0
VBA и WEB
    #39838609
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
если вы пользуете MSXML2.XMLHTTP и его свойство responseText, то он(парсер) и виноват
...
Рейтинг: 0 / 0
VBA и WEB
    #39838614
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ferzmikk,
если вы пользуете MSXML2.XMLHTTP и его свойство responseText, то он(парсер) и виноватКак быть теперь?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838622
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ferzmikk,
responseText перекодирует в соответствии со своим разумениемЭто можно как то вылечить?
с 3-й версии добавили responseStream для анализа
...
Рейтинг: 0 / 0
VBA и WEB
    #39838623
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ferzmikk,
если вы пользуете MSXML2.XMLHTTP и его свойство responseText, то он(парсер) и виноват

библиотека для http протокола стала парсером. Круто.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838625
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

что лечим? meta tag в заголовке пропиши правильный с кодировкой файла своего
...
Рейтинг: 0 / 0
VBA и WEB
    #39838626
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkiMrTidyТакой html даже Chrome не открывает! У Вас title не закрыт.
Исходник
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
<html>
<head>
    <title>Тестовая страница</title>
</head>
<body>
    <h1>Статистика</h1>
    <h2>
        Таблица 1</h2>
        Период: 01.01.2019-30.06.2019<br>
        <br>

        <table>

            <tr>
                <th>Колонка 1</th>
                <th>Строка 1 Колонка 2<br>Строка 2 Колонка 2</th>
                <th>Колонка 3</th>
                <th>Колонка 4</th>
                <th>Колонка 5</th>
            </tr>
            <tr>
                <td>Значение 1.1</td>
                <td>
                    <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>Значение 1.4</td>
                <td>Значение 1.5</td>
            </tr>
            <tr>
                <td>Значение 2.1</td>
                <td>
                    <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>Значение 2.4</td>
                <td>Значение 2.5
                <td>
            </tr>

        </table>

        <span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>


Результат
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
<html>
<head>
    <title>??????title>
</head>
<body>
    <h1>????h1>
    <h2>
        ???</h2>
        ??: 01.01.2019-30.06.2019<br>
        <br>

        <table>

            <tr>
                <th>???1</th>
                <th>?? 1 ???2<br>?? 2 ???2</th>
                <th>???3</th>
                <th>???4</th>
                <th>???5</th>
            </tr>
            <tr>
                <td>??? 1.1</td>
                <td>
                    <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>??? 1.4</td>
                <td>??? 1.5</td>
            </tr>
            <tr>
                <td>??? 2.1</td>
                <td>
                    <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>??? 2.4</td>
                <td>??? 2.5
                <td>
            </tr>

        </table>

        <span><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>...</span> <a href="/aaaaa/?page=10000">10000</a>

</body>
</html>


В title пропадают символы </ . Даже h1. Почему так?

Файл сохранен в utf-8?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838629
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidy,
дело ваше, пользуйтесь если пользуется
я не собираюсь вам доказывать насколько мс отстал

Потому что не можете доказать. Что бы Вы сказали Вы тут сейчас делаете? Только честно.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838630
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidy,
дело ваше, пользуйтесь если пользуется
я не собираюсь вам доказывать насколько мс отстал

Чем ТС прикажете пользоваться? Он пишет проект в Excel.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838638
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidykealon(Ruslan)iMrTidy,
дело ваше, пользуйтесь если пользуется
я не собираюсь вам доказывать насколько мс отстал

Чем ТС прикажете пользоваться? Он пишет проект в Excel.Если писать в VB.NET, C# или Pyton, то тоже самое будет?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838639
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ferzmikk,
responseText перекодирует в соответствии со своим разумением

с 3-й версии добавили responseStream для анализа

Кодировку можно задать...а "разумение" это по умлочанию utf-8 как чуть ли не во всем Интернете. Или МС и тут отстал?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838640
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyФайл сохранен в utf-8?Как это узнать?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838641
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidykealon(Ruslan)iMrTidy,
дело ваше, пользуйтесь если пользуется
я не собираюсь вам доказывать насколько мс отстал

Чем ТС прикажете пользоваться? Он пишет проект в Excel.я бы просто написал на чём ни будь вменяемом
и в ексель уже готовое сливал
на крайний случай бы просто написал обёртку с COM-интерфейсом которая будет давать xml, приведённый к адекватному

но мы же явно поиграть хотим
...
Рейтинг: 0 / 0
VBA и WEB
    #39838645
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidykealon(Ruslan)ferzmikk,
если вы пользуете MSXML2.XMLHTTP и его свойство responseText, то он(парсер) и виноват

библиотека для http протокола стала парсером. Круто.парсер нижнего уровня
внезапно ..., да?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838647
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Onemeta tag в заголовке пропиши правильный с кодировкой файла своегоТак?
Код: html
1.
2.
3.
4.
5.
6.
7.
<html>
 <head>
  <title>Тег META</title>
  <meta charset="utf-8">

 </head>
...
...
Рейтинг: 0 / 0
VBA и WEB
    #39838648
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkiMrTidyФайл сохранен в utf-8?Как это узнать?

Откройте в Notepad++ и перекодируйте в utf-8, а затем сохраните.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838649
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidyпропущено...


Чем ТС прикажете пользоваться? Он пишет проект в Excel.я бы просто написал на чём ни будь вменяемом
и в ексель уже готовое сливал
на крайний случай бы просто написал обёртку с COM-интерфейсом которая будет давать xml, приведённый к адекватному

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

Напишите, ТС уже который день мучается. А я умываю руки.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838650
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidyпропущено...


библиотека для http протокола стала парсером. Круто.парсер нижнего уровня
внезапно ..., да?

Пруфлинк.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838656
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyОткройте в Notepad++ и перекодируйте в utf-8, а затем сохраните.Заработало!
...
Рейтинг: 0 / 0
VBA и WEB
    #39838658
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в обычном блокноте писал HTML. Получается обычный блокнот не задает нужную кодировку.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838661
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

Блокнот при сохранении
...
Рейтинг: 0 / 0
VBA и WEB
    #39838761
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyНажатие на [+] приводит к крашу, т.к. это такой баг такая фича типа данных, ничего с этим не поделаешь.Это из за объекта HTMLDocument?

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

Внизу скриншот. В цикле один элемент. На строке elem появляется ошибка.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838765
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkВнизу скриншот. В цикле один элемент. На строке elem появляется ошибка.Даже когда шаг на строке Next elem и нажать на Reset, то все равно зависает.
...
Рейтинг: 0 / 0
VBA и WEB
    #39838766
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно по другому анализировать содержимое?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838770
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

Подождите, Вам же kealon(Ruslan) согласился написать все красиво: 21929211 .
...
Рейтинг: 0 / 0
VBA и WEB
    #39838779
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyferzmikk,

Подождите, Вам же kealon(Ruslan) согласился написать все красиво: 21929211 .ОК
...
Рейтинг: 0 / 0
VBA и WEB
    #39838795
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Усложняю пример, который приближается к реальному.
Дополненный HTML-код
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
<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 со стилем.
Код: vbnet
1.
Set elems = html.querySelectorAll("span class=""dots""")
...
Рейтинг: 0 / 0
VBA и WEB
    #39838799
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потом, когда узнали количество "страниц" для продолжение таблицы, то как правильно выгружать последующие "страницы"?
...
Рейтинг: 0 / 0
VBA и WEB
    #39838815
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyferzmikk,

Подождите, Вам же kealon(Ruslan) согласился написать все красиво: 21929211 .не вижу в этом сообщении никакой оферты, но могу рассмотреть предложения если такие мысли будут
...
Рейтинг: 0 / 0
VBA и WEB
    #39838881
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkУсложняю пример, который приближается к реальному.
Дополненный HTML-код
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
<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 со стилем.
Код: vbnet
1.
Set elems = html.querySelectorAll("span class=""dots""")



ferzmikkПотом, когда узнали количество "страниц" для продолжение таблицы, то как правильно выгружать последующие "страницы"?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839077
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)iMrTidyferzmikk,
Подождите, Вам же 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)парсер нижнего уровня
внезапно ..., да?

А я считаю, что все это явно указывает, что Вы горите желанием, демонстрируете свои глубокие знания в теме, и даже хотели бы сделать как надо, но, видимо, я мешаю, больше не мешаю, вперед. Только балаболы за свои слова не отвечают. Выбор за Вами.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839085
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy,

Выбор за ТС - 21929516 , если наиграется и решит, что не его это дело, всегда пожалуйста, обсудим.
Ему уже много раз сказали, и не я один, что он выбрал плохой путь. Но можно конечно и безнадёжного поддерживать, если есть желающий оплатить сей процесс.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839137
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, поскольку я не делал сайты и начал парсинги писать, то могу многое чего не знать. Начал изучать HTML и CSS. Не знаю нужно ли изучать JavaScript, но если не ошибаюсь, там могут сидеть данные и фильтр.

Какой то код на VBA уже написан по выгрузке данных из сайта. Осталось немного дописать с учетом
- выгрузить количество страниц не через
Код: vbnet
1.
2.
3.
Set elems = doc.querySelectorAll("body > a")
Set elem = elems(elems.Length - 1)
Debug.Print elem.innerText

а через использования стиля
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
  <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? На этих языках программирования также будет не надежно? Пожалуйста, порекомендуйте конкретную путевую литературу, где об парсинге пишут достаточно подробно и понятно с учетом разных логических нюансов, исходя данной задачи. Или ссылки на сайты, где по Вашему мнению правильно описывается как делать.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839161
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
VBA и WEB
    #39839175
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Onecurl тебе в помощь

https://levashove.ru/how-to-install-curl-on-windows-10/ Я правильно понимаю, что пишется на php?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839188
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, это утилита командной строки для отправки запросов по http
...
Рейтинг: 0 / 0
VBA и WEB
    #39839200
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneнет, это утилита командной строки для отправки запросов по httpЕго каждый раз вручную надо запускать?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839205
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можешь автоматизировать , написать батник, например
...
Рейтинг: 0 / 0
VBA и WEB
    #39839207
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneможешь автоматизировать , написать батник, напримерТогда тут без VBA. Это пишется на VBScript? А тот but может результат в excel выложить как умную таблицу?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839208
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Onecurl тебе в помощьчестно говоря, не понимаю, чем это поможет ТС-у ?

Ну будет он получать html-код страницы не с помощью COM-объекта XMLHTTP, а с помощью curl-а, - и что дальше ?
У него нет проблемы с получением html-кода, у него проблема с тем как распарсить этот полученный код, особенно в случае если код "кривоватый" ...
...
Рейтинг: 0 / 0
VBA и WEB
    #39839209
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtУ него нет проблемы с получением html-кода, у него проблема с тем как распарсить этот полученный код, особенно в случае если код "кривоватый" ...Если Вы про HTML-код из файла, то это пока условный пример для экспериментирования выгрузки данные из сайта, чтобы потом выгружать из реального примера.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839210
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkcourtУ него нет проблемы с получением html-кода, у него проблема с тем как распарсить этот полученный код, особенно в случае если код "кривоватый" ...Если Вы про HTML-код из файла, то это пока условный пример для экспериментирования выгрузки данные из сайта, чтобы потом выгружать из реального примера.Нет-нет, я в принципе, про любой сайт.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839212
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с такими знаниями никакой динамический парсер не напишешь, так что ТСу придётся делать что-то кривенькое и с ограниченными возможностями
...
Рейтинг: 0 / 0
VBA и WEB
    #39839218
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneс такими знаниями никакой динамический парсер не напишешь, так что ТСу придётся делать что-то кривенькое и с ограниченными возможностямиРаз пошла такая тема, то может есть смысл расписать здесь плюсы и минусы каждого способа из имеющего набора. Пусть даже есть способ, как Вы говорите, кривенькое и с ограниченными возможностями, но заданую задачу может реализовать нормально. У сайта задана своя структура. Если в какой момент времени в таблицу добавилась колонка, переместилась или удалилась, то это можно поправить код VBA. Или прописать так в коде VBA, чтобы сам это улавливал.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839221
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. есть уже готовые универсальные парсеры сайтов, ищите.
2. если хотите сами, но не понимаете как это всё работает, то стоит начать с изучения основ html
3. если основы осилили, попробуйте работать для начала с интерактивом посредством встроенного браузера (компонент интернет эксплорера), который вы можете поместить внутрь своей формы и реагировать на события DOM (ищите примеры, это делали много раз уже до вас)
...
Рейтинг: 0 / 0
VBA и WEB
    #39839229
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One1. есть уже готовые универсальные парсеры сайтов, ищите.На VBA? Надстройка для Excel?
2. если хотите сами, но не понимаете как это всё работает, то стоит начать с изучения основ htmlJavaScript надо изучать?
3. если основы осилили, попробуйте работать для начала с интерактивом посредством встроенного браузера (компонент интернет эксплорера), который вы можете поместить внутрь своей формы и реагировать на события DOM (ищите примеры, это делали много раз уже до вас)Я правильно понимаю, в excel используется объект как встроенный браузер и в зависимости куда захожу - VBA выгружает данные? Это используется совместно с JavaScript?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839240
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
It was enough to add a reference to Microsoft Internet Controls ( ieframe.dll ), then use the following code in a form:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Option Explicit

Private WithEvents WB As WebBrowser

Private Sub UserForm_Activate()
  Set WB = Me.Controls.Add("Shell.Explorer.2")
  WB.Navigate "http://google.com"
End Sub

Private Sub WB_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
  Debug.Print "WB_NavigateComplete2"
End Sub
...
Рейтинг: 0 / 0
VBA и WEB
    #39839255
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,
...
Рейтинг: 0 / 0
VBA и WEB
    #39839260
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да уж, всё хуже, чем я думал. он в рантайме добавляется, а вы в дизайнтайме
...
Рейтинг: 0 / 0
VBA и WEB
    #39839263
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkKonst_One,


правой педалью по Tollbox, в контекстном меню выбираешь "Additional Controls"
И там это :
...
Рейтинг: 0 / 0
VBA и WEB
    #39839292
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понимаю, что парсить надо с объекта pDisp.document?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839309
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничего там не надо парсить, это полное дерево DOM всех элементов документа
...
Рейтинг: 0 / 0
VBA и WEB
    #39839366
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
  <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>

Почему не выгружаются элементы класса pagination ? Или не то делаю?

Объект pDisp.document имеет тип HTMLDocument. Почему не видит метод getElementsByClassName?

https://developer.mozilla.org/ru/docs/Web/API/Document/getElementsByClassName
...
Рейтинг: 0 / 0
VBA и WEB
    #39839375
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
Dim htmlDoc As MSHTML.HTMLDocument 'Microsoft HTML Object Library

Set htmlDoc = pDisp.document
'теперь можно работать с документом
...
Рейтинг: 0 / 0
VBA и WEB
    #39839405
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вышел на класс pagination , а на context не выходит.

Как правильно выйти на элементы класса context ?

В окне watсhes видно, что
- объект htmlDoc.getElementsByClassName("pagination") имеет возвращаемый тип DispHTMLElementCollection
- объект htmlDoc.getElementsByClassName("pagination")(0) имеет возвращаемый тип HTMLDivElement.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839408
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делай присвоение к переменным нужного типа (коллекциям, элементу и тп), а уже потом работай с этой переменной дальше
...
Рейтинг: 0 / 0
VBA и WEB
    #39839441
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneделай присвоение к переменным нужного типа (коллекциям, элементу и тп), а уже потом работай с этой переменной дальшеПочему в объект htmlDoc2_1 не присваивается? Хотя тип данных соответствующий.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839444
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IHTMLElementCollection
...
Рейтинг: 0 / 0
VBA и WEB
    #39839450
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фрагмент HTML-кода
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<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=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>

Почему объект htmlDoc4(htmlDoc4.Length - 1) выводит " https://www.google.com "? Это же после закрытия класса context и pagination .
...
Рейтинг: 0 / 0
VBA и WEB
    #39839454
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитай уж документацию что ли, коллекция всех элементов A в документе
...
Рейтинг: 0 / 0
VBA и WEB
    #39839464
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тупанул тут я. В каждой строке присвоения написал htmlDoc.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839482
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как видим из объекта htmlDoc2, который имеет тип I HTMLElementCollection нельзя использовать как объект HTMLElementCollection, чтобы использовать метод getElementsByClassName("context"). Я правильно понимаю тип IHTMLElementCollection никак нельзя преобразовать в тип HTMLElementCollection?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839483
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал код, определяющий количество "страничек". Но как то не красиво получается. Да еще в объект htmlDoc4 не присваивается. Как можно было написать правильнее?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim htmlDoc As MSHTML.HTMLDocument
Set htmlDoc = pDisp.Document
    
Dim htmlDoc2 As MSHTML.HTMLDivElement
Set htmlDoc2 = htmlDoc.getElementsByClassName("pagination")(0)
    
Dim htmlDoc3 As MSHTML.HTMLDivElement
Set htmlDoc3 = htmlDoc2.getElementsByClassName("context")(0)
    
Dim htmlDoc4 As MSHTML.DispHTMLElementCollection
Set htmlDoc4 = htmlDoc3.getElementsByTagName("a") 'Возникает ошибка "Object doesn't support this property or method"

...
Рейтинг: 0 / 0
VBA и WEB
    #39839529
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идея заключается в том, что:
На первом этапе из всего документа вытащить коллекцию класса pagination ,
На втором этапе из полученной коллекции на первом этапе вытащить (.item(0)) коллекция класса context
На третьем этапе из полученной коллекции на втором этапе вытащить (.item(0)) коллекцию тега а
На четвертом этапе из полученной коллекции на третьем этапе вытащить (.item(последний item)) количество "страничек"

Возможно на каких то сайтах придется парсить, скажем из 10 шагов.

Скажите, так получится сделать? Или тут надо по другому делать?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839530
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понимаю, что возможно сделать по следующей схеме?
HTMLDocument → IHTMLElementCollection → IHTMLElement → [n1][m1]Children → [n2][m2]Children → [n3][m3]Children → и т.д.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839864
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkНаписал код, определяющий количество "страничек". Но как то не красиво получается. Да еще в объект htmlDoc4 не присваивается. Как можно было написать правильнее?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839887
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkferzmikkНаписал код, определяющий количество "страничек". Но как то не красиво получается. Да еще в объект htmlDoc4 не присваивается. Как можно было написать правильнее?Это всё лишние "телодвижения" :)

XMLHTTP - тебе ошибкой скажет, что запрошена несуществующая страница
Если парсишь через IE, WebBrowser - то сигнатура полученной страницы будет не соответствовать "нормальной" странице, и это как условие выхода можно использовать ...
...
Рейтинг: 0 / 0
VBA и WEB
    #39839891
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtXMLHTTP - тебе ошибкой скажет, что запрошена несуществующая страницаПодключаешься же к запрашиваемой странице. Или это другое?
Если парсишь через IE, WebBrowser - то сигнатура полученной страницы будет не соответствовать "нормальной" странице, и это как условие выхода можно использовать ...Как быть теперь?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839898
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkcourtXMLHTTP - тебе ошибкой скажет, что запрошена несуществующая страницаПодключаешься же к запрашиваемой странице. Или это другое?Твой УРЛ страниц ведь типа этого
http://ааааа.ru/bbbbb/ ?page=2

Вот и "крути" безконечный цикл с нарастающим номером страницы, подставляя его в шаблон УРЛ-а (вместо 2).
Как получишь ошибку "Не удается найти указанный ресурс." - выход из цикла
...
Рейтинг: 0 / 0
VBA и WEB
    #39839902
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtferzmikkпропущено...
Это всё лишние "телодвижения" :)Как правильно и оптимально писать, чтобы выгрузить количество "страничек"?
...
Рейтинг: 0 / 0
VBA и WEB
    #39839920
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtВот и "крути" безконечный цикл с нарастающим номером страницы, подставляя его в шаблон УРЛ-а (вместо 2).
Как получишь ошибку "Не удается найти указанный ресурс." - выход из циклаКак вариант. Но хочу разобраться, как можно вытащить через открывающие вложенные тэги.
...
Рейтинг: 0 / 0
VBA и WEB
    #39839941
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант 1
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Option Explicit
Private WithEvents WB As WebBrowser

Private Sub UserForm_Activate()
  Set WB = Me.Controls.Add("Shell.Explorer.2")
  WB.Navigate "file:///C:/Users/Acer/Desktop/Сайт/Главная страница.htm"
End Sub

Private Sub WB_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    Dim htmlDoc As MSHTML.HTMLDocument
    Set htmlDoc = pDisp.Document    
    ...
End Sub

Вариант 2
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Option Explicit

Sub Procedure_1()

Dim cantrol As Control
Dim Broser As Object
 
Set cantrol = UserForm2.Controls.Add("Shell.Explorer.2", "WebBroser")
Set Broser = cantrol.Object

cantrol.Navigate "file:///C:/Users/Acer/Desktop/Сайт/Главная страница.htm"

...

UserForm2.Controls.Remove "WebBroser"
End Sub

А если писать код не внутри пользовательской формы, а в отдельной модуле как через динамическое создание контрола. Так получится? Ведь объект pDisp получаем через событийную процедуру WB_NavigateComplete2.
...
Рейтинг: 0 / 0
VBA и WEB
    #39840499
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понимаю, что вариант 2 не получится?
...
Рейтинг: 0 / 0
VBA и WEB
    #39841767
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выгружаю таблицу из тестового сайта, который похож на реальный сайт. В результате - таблица выгружается.
...
Рейтинг: 0 / 0
VBA и WEB
    #39841768
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выгружаю таблицу из реального сайта. В результате - таблица не выгружается.
...
Рейтинг: 0 / 0
VBA и WEB
    #39841769
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему так? На что нужно обратить внимание?

Фрагмент кода из реального сайта
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<div class="results-frame"> 
  <table class="list border">
      <tbody>
        <tr>
         ...
        </tr>
        <tr class=" ">
          ...
        </tr>
        <tr class="even ">
          ...
       </tr>
       <tr class=" ">
          ...
       </tr>      
    </tbody>
  </table>
</div>

...
Рейтинг: 0 / 0
VBA и WEB
    #39841784
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. свой htmlDoc2 , вы неправильный тип переменной указали
...
Рейтинг: 0 / 0
VBA и WEB
    #39841789
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneсм. свой htmlDoc2 , вы неправильный тип переменной указали
Акцент пока на переменную htmlDoc

В окне Watches
Код: vbnet
1.
htmlDoc.getElementsByTagName("table")

таблица не выгружается
...
Рейтинг: 0 / 0
VBA и WEB
    #39841798
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее всего ваш документ ещё нге загрузился, там пустая страница about:blank . нужно дождаться загрузки
...
Рейтинг: 0 / 0
VBA и WEB
    #39841801
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneскорее всего ваш документ ещё нге загрузился, там пустая страница about:blank . нужно дождаться загрузкиВсе также
...
Рейтинг: 0 / 0
VBA и WEB
    #39841810
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуйте дальше, начните с простых html и посмотрите примеры использования контрола WebBrowser в интернете
...
Рейтинг: 0 / 0
VBA и WEB
    #39841914
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneсм. свой htmlDoc2 , вы неправильный тип переменной указалиНадо MSHTML.IHTMLElementCollection?
...
Рейтинг: 0 / 0
VBA и WEB
    #39841917
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Беру другие сайты. То же самое.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Option Explicit
Private WithEvents WB As WebBrowser

Private Sub UserForm_Activate()
    Set WB = Me.Controls.Add("Shell.Explorer.2")
    'WB.Navigate "view-source:https://www.vestidos.ru/pages/size_table.php"
    WB.Navigate "http://www.segment.ru/analytics/obzor_otrasli_ryinok_kantselyarskih_tovarov_i_ofisnoy_bumagi_istochnik_rbk/"
End Sub

Private Sub WB_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    Dim htmlDoc As MSHTML.HTMLDocument
    Set htmlDoc = pDisp.Document
    
    Dim htmlDoc2 As MSHTML.IHTMLElementCollection
    Set htmlDoc2 = htmlDoc.getElementsByTagName("table")
End Sub

...
Рейтинг: 0 / 0
VBA и WEB
    #39842030
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkБеру другие сайты. То же самое.Почему так?
...
Рейтинг: 0 / 0
VBA и WEB
    #39851369
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот даже если выгружать с текущего сайта, то не находит таблицу. Тег html находит, а тег table не находит. Почему?
...
Рейтинг: 0 / 0
VBA и WEB
    #39852063
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот еще. Чтобы выгрузить с использованием фильтра - надо вставить параметры и нажать на кнопку. С помощью getElementById получается программно ввести ключевое слово "Парсинг" в поле "Поиск", а также ввести значение "Microsoft Office" в поле "Форум". У кнопки нету ID, поэтому надо выйти на div c ID "content-wrapper-forum", а дальше через Child выйти на кнопку.

1. Вышел на кнопку. Работает клик.
Код: vbnet
1.
HTMLDoc.getElementById("content-wrapper-forum").Children(0).Children(0).Children(1).Children(0).Children(2)

Скажите, учитывая, что у кнопки нету ID, возможно ли было написать строку по короче?

2. Не работает клик (выбор) опции "Microsoft Office"
Код: vbnet
1.
2.
Set HTMLInput_Forum = HTMLDoc.getElementById("ComboForums")(52)
HTMLInput_Forum.Click

Как правильно написать?

3. Возможно ли было выйти на опцию "Microsoft Office" не указывая индекс, а использовать, скажем, поисковый метод, где указывается "Microsoft Office" и выводит на нужную опцию?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Option Explicit
Sub GetHTMLDocument2()

Dim IE As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
Dim HTMLInput_keyword, HTMLInput_Forum As MSHTML.IHTMLElement
Dim HTMLButton As MSHTML.IHTMLElement

IE.Visible = True
IE.Navigate "https://www.sql.ru/forum/afsearch.aspx?s=&submit=%CD%E0%E9%F2%E8&bid=-3"

Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop

Set HTMLDoc = IE.Document

Set HTMLInput_keyword = HTMLDoc.getElementById("searchQuery")
HTMLInput_keyword.Value = "Парсинг"

Set HTMLInput_Forum = HTMLDoc.getElementById("ComboForums")(52)
'HTMLInput_Forum.Value = "Microsoft Office"
HTMLInput_Forum.Click

Set HTMLButton = HTMLDoc.getElementById("content-wrapper-forum").Children(0).Children(0).Children(1).Children(0).Children(2)
HTMLButton.Click

End Sub

...
Рейтинг: 0 / 0
VBA и WEB
    #39853301
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk2. Не работает клик (выбор) опции "Microsoft Office"
Код: vbnet
1.
2.
Set HTMLInput_Forum = HTMLDoc.getElementById("ComboForums")(52)
HTMLInput_Forum.Click

Как правильно написать?
Код: vbnet
1.
HTMLDoc.getElementById("ComboForums").selectedIndex = 52
...
Рейтинг: 0 / 0
169 сообщений из 169, показаны все 7 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA и WEB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]