Размер шрифта:
Скачивание (загрузка) текста web-страницы в текстовый файл
Play

Скачивание (загрузка) текста web-страницы в текстовый файл

При помощи этого макроса вы можете скачать текст с выбранной страницы веб-сайта:

То же самое - но в виде функции:

Если же нужен HTML код страницы, то используйте такой вариант

Пример использования этой функции для загрузки текста страниц из интернета:

PS: Если вас интересует ИСХОДНЫЙ КОД страницы - используйте эту функцию: http://excelvba.ru/code/GetHTTPResponse

  • 68033 просмотра

Комментарии

Добрый день - использу ваш код для загрузки html страницы очень удобно спасибо Вам огромное. Но в последние дни проблемы с использованием кода на сайте https://rosreestr.ru/wps/portal/online_request вставляю эту страницу и проблемы возникают с тем что она не отгружает текст а только открывает ie и больше никаких действий, неделю назад все было хорошо. Я использовал макрос ЗагрузкаТекстаВебСтраницы. Подскажите с чем это может быть связано.

Да, можно и часть. На сайте есть функция для поиска нужных тегов в html коде

Классные коды, огромное спасибо. А можно импортировать не всю страницу, а кусок? По тегам или еще как-нибудь

Переустанавливал, откатывал на старую версию, поставил винду 10 64 бит, и офис 16.

Возможно, IE криво установился или обновился. Попробуйте переустановить ИЕ

Function WebPageText не работает, ранее работала перестала после очередного пакета обновления виндоус7. Останавливается на строке While IE.busy Or (IE.readyState <> 4): DoEvents: Wend при этом страница в браузере открывается. если поставить MsgBox IE.Document.body.innerText При любом времени ожидания объект IE.Document пуст. Если использовать http://excelvba.ru/code/GetHTTPResponse или https://excelvba.ru/code/FileQueryRange данные возвращаются. В чем проблема?

Меня интересует такой же вопрос: как загрузить содержимое текстового файла с этой страницы или сам файл

Огромное спасибо! То, что надо! Очень полезная в хозяйстве вещь!

Николай, да, можно, - только это будет уже совсем другой макрос. Впрочем, у меня есть готовое решение для такой задачи, - всё будет работать в точности как вам надо: http://excelvba.ru/programmes/Parser И ссылки из выделенных строк возьмет из заданного столбца, и результат в те же строки выведет

Здравствуйте, отличный макрос (программа)! Подскажите пожалуйста, а можно сделать так, чтобы задавать диапазон ссылок (например: от А1 до А10) или выделять N-ое количество ссылок - макросы - выполнить и макрос их обрабатывает? И ещё, выводить содержимое ссылки не в новом документе, а в ячейке соседнего столбца? Понимаю, раскатал губу, своими запросами, не сочтите за наглость! Заранее благодарю за ответ.

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

Добрый день. Вы писали: "Как перебрать все вкладки (и получить URL открытых страниц и их содержимое), я знаю (делал)" Не мог бы бы подсказать как? Спасибо!

Андрей, тут подсказать не смогу Как перебрать все вкладки (и получить URL открытых страниц и их содержимое), я знаю (делал) А как узнать, какая из вкладок активная, тут сложнее (надо к самому приложению обращаться, или через WinAPI все вкладки проверять) - мне такого делать не приходилось, потому, посоветовать ничего не могу.

Здравствуйте. Подскажите, пожалуйста, следующее Есть несколько уже открытых web-страниц в ИЕ. Они в разных вкладках и в разных окнах. Нужно обработать только активную в данный момент вкладку или окно. Как средствами VBA определить какая(ое) из всех вкладок-окон в данный момент активны? Спасибо

Альтернатива есть, - можно работать с сайтами без использования браузера Например: http://excelvba.ru/code/gethttpresponse Браузер, собственно, вообще не нужен, - просто изредка с ним удобнее работать (код проще)

PS: IE8, как и любой другой браузер, отлично работает с HTTPS Проблема IE - только в том, что он тормозит, и может подвисать (потому я, в своё парсере, IE стараюсь не использовать вообще)

Доброго Времени Суток Вам. Подскажите, а есть альтернатива:CreateObject("InternetExplorer.Application") Дело в том, что у меня XP sp2 = IE8, который в свою очередь не работает c https.

Сергей, ответил вам на почту

Здравствуйте. Очень нужна Ваша помощь. Есть база ссылок в Excel. База для интернет-магазина. Есть столбцы с названием, описанием . ценой и ссылкой на сайт-донор. Нужно сделать так, чтоб макрос выполнял перебор этих ссылок и сравнивал цену в ячейке с ценой на сайте. Можете мне в этом помочь?

Про какую программу речь? В статье, где вы разместили комментарий, никакой программы нет.

Речь про надстройку «Парсер сайтов»? Если да, - можем настроить под заказ. Заказы на парсер принимаются в таком виде: http://excelvba.ru/programmes/Parser/order

Скачал тестовую программу. Подскажите как сделать выгрузку списка компаний с сайта в таблицу ексель, и их контактов. Найти контакты возможно с других сайтов этих компаний, (поиск по названию компаний). Т.е. на сайте, где список компаний - там нет контактов, контакты есть на сайтах этих компаний, нужен поиск сайтов по названию компаний - переход и скачка контактов. Возможно это сделать через Данную программу? И как? Сайт, с которого нужен список компаний http://www.franchisee.su/catalog/s-p-avto-lyubye-zapchasti-na-lyubye-avt.

Валентина, в функции SaveTXTfile найдите строку

Файл создавался пустой, т.к. было попытка сохранить его в кодировке ANSI, а на веб-странице присутствуют символы, недопустимые в этой кодировке. После того, как строчку в коде поменяете, файл будет создаваться в кодировке UTF-16, - там все символы допустимы.

Добрый день! Я пробую сохранить текст, а также код страницы https://www.discogs.com, но текстовый файл - пуст. При этом текст в переменной txt есть.

Добрый день! хороший макрос. Но как загружать код не только страницы но и код элемента находящегося на странице?

Спасибо большое! получилось реализовать именно этим способом.

Ну или добавьте в код из этой статьи задержку в пару секунд. (надо подождать, пока отработает редирект, и скрипт сформирует страницу результатов) После строки While IE.busy Or (IE.readyState <> 4): DoEvents: Wend ' ждем, пока загрузится страница напишите application.wait now + 2/86400 ' пауза 2 секунды

Спасибо Вам за сайт. Очень много полезной и качественной информации.

Столкнулся с проблемой урл: "http://nylottery.ny.gov/wps/portal/NumbersTracker?game=NUMBER" Ни одним способом, найденным на сайте, не могу загрузить данные с сайта в excel (Copy-Past не в счет). Веб-запрос тоже результатов не дает. Подскажите, возможно есть другие способы, или я что-то упускаю. Заранее спасибо.

Подозрение что не в той отправляется. Потому что от гугла приходит INVALID_REQUEST

Ну как не работает? Может, не в той кодировке ответ приходит? Так в этом случае можно изменить кодировку файла

GetHTTPResponse на моей конфигурации не работает с русскими буквами в запросе. Т.е. Иркутск не проходит. Мне пришлось сделать транслитерацию, но это сократило количество корректных ответов от гугла на треть. Т.е. не решение

Здравствуйте, Дмитрий. Во-первых, код работает и с вашей ссылкой (Excel 2010, Win XP, IE 7), но дело да\же не в этом. По ссылке возвращается XML - зачем результат в ячейки помещать?

Есть 2 способа получить XML с сайта:

И у меня этот код ничего не возвращает запросом по адресу "http://maps.google.com/maps/api/geocode/xml?address=London&sensor=false" Excel 2010, Win 7, IE 9

А запрос html из первоначального примера возвращает корректные данные. Возможно это потому что с гугла xml приходит?

А если в запросе London на Иркутск поменять?

Здравствуйте, Жека. Использование браузера по-умолчанию в подобных макросах невозможно.

Браузеров много разных - соответственно, методы работы (программного взаимодействия) с ними сильно отличаются. Придётся писать код для каждого отдельного браузера. (и получится не 5 строк кода, а в сотню раз больше)

Есть другой способ получить текст веб-страницы - использовать веб-запрос (в этом случае можно обойтись вообще без макросов - этот запрос можно создать вручную, а настроить автообновление данных)

Ещё раз спасибо за Ваши программы. Возник вопрос : Как переделать строку Set IE = CreateObject("InternetExplorer.Application") , что бы загружался браузер по умолчанию, а не только InternetExplorer. Спасибо за ответ.

Здравствуйте, Алексей. Тут не получится дать универсальный совет - в каждом случае надо выдирать из текста различные данные. Обычно я делаю это при помощи функции Split (для разделения текстовой строки на 2 части). 2 вызова этой функции - и нужные данные из огромного текста получены.

Кроме того, можно попробовать применить веб-запрос - в этом случае курс доллара можно получить без единой строки кода.

PS: У меня на сайте есть отдельный макрос для получения курса доллара на нужную дату.

Спасибо, все работает Я вот полностью забираю текст с сайта, а потом функциями excel выбираю нужное А вот как в макросе прописать так называемый парсинг, т.е. мне надо найти например курс доллара на конкретную дату

Спасибо Вам за ответ! Видимо у меня что-то с настройками? Посмотрю. Я делал аналогично - загнал в переменную адрес. Результатом было ''.

Огромное спасибо за совет, поискать по форуму "Планеты" - с лёту в поисковиках не нашел. Надо было быстро получить координаты. Сначала хотел воспользоваться json, но не смог добраться даже да текста. Надеюсь, на форуме найду.

Еще раз благодарю за очень оперативный ответ!

Я взял вышеопубликованную функцию ЗагрузкаТекстаВебСтраницы, в одной строке кода заменил адрес сайта:

PS: Я бы на вашем месте поискал готовое решение - на форуме «Планеты Excel» встречал как-то 2 решения вашей задачи (определение координат по адресу, путем парсинга XML с подобный веб-страниц)

📎📎📎📎📎📎📎📎📎📎