|
VBA и WEB
|
|||
---|---|---|---|
#18+
ferzmikk, подключи в Reference эту библиотеку - Microsoft HTML Object Library и используй Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2019, 08:25 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
courtferzmikk, подключи в Reference эту библиотеку - Microsoft HTML Object Library и используй Код: vbnet 1.
Получилось. Только почему не срабатывает, когда пишем так Set Html = CreateObject("htmlFile")? По логике изменили только позднее связывание на ранее. Теперь появляется ошибка на другой строке Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Почему так? Как правильно написать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2019, 10:04 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
ferzmikk, у тебя ж подключена библиотека вот и зайди по ф2 и посмотри что за класс у Итема и какие у него методы ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2019, 11:02 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
courtferzmikk, у тебя ж подключена библиотека вот и зайди по ф2 и посмотри что за класс у Итема и какие у него методы Правильно смотрю? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2019, 12:39 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
Использование 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.
Использование 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.
Фишка в том, что в первом варианте метод Html.querySelectorAll("table tr").Item(N).querySelectorAll ("th,td") работает, а во втором - не работает. В первом варианте для объекта HTMLDocument позднее связывание, а во втором - ранее. Как правильно написать код? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2019, 13:12 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
courtiMrTidyподтянуть знания про HTML и протокол HTTP(S)бгггы ! а чё не сразу TCP/IP какое-нибудь ? :) ТСу нужно распарсить какую-то несчастную страничку, а ты его сразу посылаешь "куда по дальше" "протоколы учить" :) Мда, лихо. По-вашему лучше несколько суток тыкаться и просить о помощи, чем почитать документацию, пусть даже в течение дня. Ну, туда Вам и дорога. courtТС, разбирать HTML DOM - дело предельно неблагодарное ! Редко когда повезёт, и DOM будет валидным XML-ем и его можно загрузить XMLDOMDocument и разобрать "по-человечески" каким-нибудь XPath-ем :) Разве что это будет сайт в строгом соответствии стандарту HTML5 (?) В лучшем случае, это "выкусить" строковыми функциями требуемый "кусок" DOM-а, который будет валидным, и разбирать его в XMLDOMDocument-е По этому, ещё раз, может не дошло сразу: попробуй открыть свою ссылку в Экселе (Файл-Открыть-заряжаешь свою ссылку на страницу-"Открыть") и посмотреть на результат. "Бегать" по ячейкам, всё-таки, на порядок проще, чем парсить строковыми функциями "кривой" DOM А че не сторонний апп сразу? Человеку ж просто нужно несчастную страничку распарсить. На XPath свет клином не сошелся. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2019, 14:33 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2019, 15:56 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2019, 23:00 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2019, 23:16 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
iMrTidyЧтобы более или менее удобно парсить дочерние элементы можно написать маленькую функцию, что будет возвращать элемент или элементы по заданному условию или условиям Что за дочерние элементы? Подстроки? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2019, 00:10 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
ferzmikk, ferzmikkiMrTidyЧтобы более или менее удобно парсить дочерние элементы можно написать маленькую функцию, что будет возвращать элемент или элементы по заданному условию или условиям Что за дочерние элементы? Подстроки? Опять же, почитайте документацию на тему HTML и XML, да и CSS не навредит. Посвятите этому всему 1 полный день. А потом поговорим. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2019, 17:47 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
iMrTidyМда, лихо. По-вашему лучше несколько суток тыкаться и просить о помощи, чем почитать документацию, пусть даже в течение дня. Ну, туда Вам и дорога.Да где ж я против "чтения документации" ? :) Исключительно "за" ! :)) Только я за ту "документацию", которая "по теме". Вот, например, какое отношение к парсингу имеет "HyperText Transfer Protocol" ? тем более Secure ? :) По моему - никакого. Если бы ТС парсил не сайт в интернете, а сохраненные файлы "*.html" его вопрос никак бы не изменился ... iMrTidyА че не сторонний апп сразу? Человеку ж просто нужно несчастную страничку распарсить. На XPath свет клином не сошелся.А эту претензию вообще не совсем понимаю ... Форум по Ораклу Оффису, ТС делает в Экселе, - я ему предлагаю и парсить в Экселе ... что не так ? Или речь про ХМЛ ? Так ХМЛ - стандарт ! Причем, кроссплатформенный стандарт. Как HTML, к единству с которым, ХМЛ и "призывает" HTML5 :) А в рамках стандарта ХМЛ есть стандарт доступа к данным - XPath ... ... при чём здесь "сторонний апп" ... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2019, 17:58 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
courtiMrTidyМда, лихо. По-вашему лучше несколько суток тыкаться и просить о помощи, чем почитать документацию, пусть даже в течение дня. Ну, туда Вам и дорога.Да где ж я против "чтения документации" ? :) Исключительно "за" ! :)) Только я за ту "документацию", которая "по теме". Вот, например, какое отношение к парсингу имеет "HyperText Transfer Protocol" ? тем более Secure ? :) По моему - никакого. Если бы ТС парсил не сайт в интернете, а сохраненные файлы "*.html" его вопрос никак бы не изменился ... iMrTidyА че не сторонний апп сразу? Человеку ж просто нужно несчастную страничку распарсить. На XPath свет клином не сошелся.А эту претензию вообще не совсем понимаю ... Форум по Ораклу Оффису, ТС делает в Экселе, - я ему предлагаю и парсить в Экселе ... что не так ? Или речь про ХМЛ ? Так ХМЛ - стандарт ! Причем, кроссплатформенный стандарт. Как HTML, к единству с которым, ХМЛ и "призывает" HTML5 :) А в рамках стандарта ХМЛ есть стандарт доступа к данным - XPath ... ... при чём здесь "сторонний апп" ... ? Не заметно, чтобы Вы были ЗА документацию. http(s) при том, что человек задействует библиотеки, которые, к примеру, используют GET, и наверняка понятия не имеет что этот GET значит. Я же не пишу, что нужно стать экспертом по HTTP(S). Кстати, TCP/IP, который Вы почему-то упомянули, к делу прямого отношения не имеет, см. OSI. Хотя, я считаю, уважающий себя программист должен иметь небольшое представление о всех семи уровнях. Все прекрасно делается без сторонних приложений. Завтра он перетащит проект из Excel в Word или Access, а парсить html так и не научится. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2019, 19:47 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2019, 13:18 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
ferzmikk1. Пока не понятно как узнать в таблице сколько всего страниц. Как это в коде должно выглядеть? 2. В таблице в одной колонке есть перенос строк, то есть несколько подстрок. У этих значений есть ссылки. Как в коде прописать так, чтобы выгрузить эти значения как массив и ссылки к нему? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2019, 18:27 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
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.
Для Вашего реального случая, скорее всего, можно будет обойтись одним css selector, поэтому почитайте, что это такое и как с этим работать. И после этого продолжим. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 02:04 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
iMrTidy, Возникает ошибка. Почему у объекта elem значение Nothing? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 09:44 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
Если в окне Locals в объекте elems нажать на плюсик, то программа зависает. Почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 09:48 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
ferzmikk, Знаки вопроса, скорее всего, потому что у Вам нужно задать кириллицу для программ, которые не поддерживают юникод . status 0 - в данном случае, нормально. elem может быть null, если Ваш html отличается от моего. Нажатие на [+] приводит к крашу, т.к. это такой баг такая фича типа данных, ничего с этим не поделаешь. Вы про селекторы почитали? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2019, 00:30 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
Провожу эксперимент Есть простой 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.
Есть макрос Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2019, 13:11 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
iMrTidyВы про селекторы почитали?Читаю ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2019, 13:12 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
ferzmikk, html у Вас не валидный. Элемент <table> находится внутри незакрытого элемента <H2>. Хорошей практикой считается использование строчных букв в названиях нодов и атрибутов. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2019, 14:05 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
iMrTidyhtml у Вас не валидный. Элемент <table> находится внутри незакрытого элемента <H2>.Исправил Код: html 1.
Результат такой же ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2019, 14:32 |
|
VBA и WEB
|
|||
---|---|---|---|
#18+
обалдеть, ему ещё и валидный html нужен давно пора завязывать с такими поделками ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2019, 14:49 |
|
|
start [/forum/topic.php?fid=61&msg=39837069&tid=2172006]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 295ms |
total: | 453ms |
0 / 0 |