powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA и WEB
25 сообщений из 169, страница 2 из 7
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
25 сообщений из 169, страница 2 из 7
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA и WEB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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