Помогите, никак не могу найти макрос с помощью которого можно будет вытащить таблицу с этого сайта, например самую верхнюю таблицу http://24score.com/footbal...., при нажатии одной кнопки в определённый диапазон
Помогите, никак не могу найти макрос с помощью которого можно будет вытащить таблицу с этого сайта, например самую верхнюю таблицу http://24score.com/footbal...., при нажатии одной кнопки в определённый диапазонjuk2000
Я просто хотел, чтоб мне быстрей ответили, уже неделю мучаюсь, понимаю что макрос достаточно прост, но у меня нет знаний достаточных. Вы можете помочь?
Я просто хотел, чтоб мне быстрей ответили, уже неделю мучаюсь, понимаю что макрос достаточно прост, но у меня нет знаний достаточных. Вы можете помочь?juk2000
К сожалению, не всё так радужно, как хотелось бы. Но рассмотрим вопрос подробнее, чтобы понять это.
Задача получения данных с веб-страницы "за один клик" (одно нажатие кнопки, запускающей макрос Excel VBA) в общем случаем распадается на два этапа: 1. получение сырых (raw) данных (как правило, текстовых) в ячейки Excel; 2. парсинг (разбор) этих данных с учетом постоянных известных "якорей" (реперных точек) в тексте, определенных в ходе предварительного анализа.
Вторую часть, какой бы сложной она не была, обычно удается решить с помощью формул или макросов с интенсивной обработкой текста (часто с использованием "регулярок").
Для решения же первой части в Excel исторически существует механизм QueryTable, но в данном случае он бессилен, потому что не может правильно определить структуру веб-страницы - увы, с годами они усложняются. И далеко не весь текст, который мы видим на странице присутствует в HTML-коде страницы, который обычно доступен в браузерах по правой кнопке мыши: HTML-код может содержать (и содержит!) не сами данные в виде тегов <tr> и <td>, а редиректы на другие адреса и имена Java-скриптов, которые динамически генерируют видимые нами данные веб-страницы. Поэтому на самОй конечной странице мы можем видеть в турнирной таблице некоторый счёт 5:3, но в тексте веб-страницы, предоставляемом браузерами или распростаненными ActiveX-библиотеками (например, MSXML2.XMLHTTP) мы вполне можем и не найти текстового фрагмента "5:3".
Чтобы получить в свое распоряжение текст для последующего парсинга, содержащий явную строку "5:3", следует (ИМХО!): * Либо вручную выделить весь контент текущей веб-страницы по Ctrl+A, скопировать его по Ctrl+C и вставить на лист Excel при помощи специальной вставки (извне!) как текст (и далее придётся щепетильно высчитывать пробелы в каждой строке). * Либо (также вручную!) сохранить на локальный диск ПК веб-страницу "полностью" из подходящего для этого браузера: Google Chrome - для этого подходит (итоговый файл будет содержать нужные теги <tr> и <td>), IE - к сожалению, нет. И далее с помощью того же QueryTable можно загрузить этот файл в Excel.
В обоих случаях для первого этапа можно попробовать применить "автоматизацию" в виде сочетания AppActivate и SendKeys, но это всё без большой гарантии и устойчивости. Но ИМХО: если только это не критично по количеству операций (в час, в сутки, в неделю), я бы предпочел на первом этапе обработки (и на данном этапе своего личного развития!) всё же ручные операции.
С удовольствием выслушаю какое-либо иное конструктивное мнение на сей счет.
К сожалению, не всё так радужно, как хотелось бы. Но рассмотрим вопрос подробнее, чтобы понять это.
Задача получения данных с веб-страницы "за один клик" (одно нажатие кнопки, запускающей макрос Excel VBA) в общем случаем распадается на два этапа: 1. получение сырых (raw) данных (как правило, текстовых) в ячейки Excel; 2. парсинг (разбор) этих данных с учетом постоянных известных "якорей" (реперных точек) в тексте, определенных в ходе предварительного анализа.
Вторую часть, какой бы сложной она не была, обычно удается решить с помощью формул или макросов с интенсивной обработкой текста (часто с использованием "регулярок").
Для решения же первой части в Excel исторически существует механизм QueryTable, но в данном случае он бессилен, потому что не может правильно определить структуру веб-страницы - увы, с годами они усложняются. И далеко не весь текст, который мы видим на странице присутствует в HTML-коде страницы, который обычно доступен в браузерах по правой кнопке мыши: HTML-код может содержать (и содержит!) не сами данные в виде тегов <tr> и <td>, а редиректы на другие адреса и имена Java-скриптов, которые динамически генерируют видимые нами данные веб-страницы. Поэтому на самОй конечной странице мы можем видеть в турнирной таблице некоторый счёт 5:3, но в тексте веб-страницы, предоставляемом браузерами или распростаненными ActiveX-библиотеками (например, MSXML2.XMLHTTP) мы вполне можем и не найти текстового фрагмента "5:3".
Чтобы получить в свое распоряжение текст для последующего парсинга, содержащий явную строку "5:3", следует (ИМХО!): * Либо вручную выделить весь контент текущей веб-страницы по Ctrl+A, скопировать его по Ctrl+C и вставить на лист Excel при помощи специальной вставки (извне!) как текст (и далее придётся щепетильно высчитывать пробелы в каждой строке). * Либо (также вручную!) сохранить на локальный диск ПК веб-страницу "полностью" из подходящего для этого браузера: Google Chrome - для этого подходит (итоговый файл будет содержать нужные теги <tr> и <td>), IE - к сожалению, нет. И далее с помощью того же QueryTable можно загрузить этот файл в Excel.
В обоих случаях для первого этапа можно попробовать применить "автоматизацию" в виде сочетания AppActivate и SendKeys, но это всё без большой гарантии и устойчивости. Но ИМХО: если только это не критично по количеству операций (в час, в сутки, в неделю), я бы предпочел на первом этапе обработки (и на данном этапе своего личного развития!) всё же ручные операции.
С удовольствием выслушаю какое-либо иное конструктивное мнение на сей счет.Gustav