mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!
Статья является инструкцией по надстройке Parser

Действие парсера «Загрузить ИСХОДНЫЙ КОД веб-страницы»

Действие "Загрузить ИСХОДНЫЙ КОД веб-страницы" (далее - Действие) является одним из основных действий программы, при помощи которого можно получить html код страницы на подавляющем большинстве сайтов.

Действие имеет 3 параметра:

1. URL (ссылка на веб-страницу)
2. Кодировка веб-страницы
3. Загружать все страницы результатов

4-ый параметр "Выполнять после каждой загрузки" присутствует в старых версиях программы. Он использовался для вызова набора действий при заполненном 3 параметре.

Действие Параметр Значение
Загрузить ИСХОДНЫЙ КОД веб-страницы URL
Кодировка веб-страницы
Загружать все страницы результатов
Исходное значение Результат
http://excelvba.ru/programmes/Parser
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Парсер сайтов и файлов (парсинг данных с сайта в Excel) | Макросы для Excel. Парсинг сайтов.</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
.........
Далее код страницы

Параметр URL (ссылка на веб-страницу)

Действие может принимать в качестве исходного значения ссылку или массив ссылок. В случае, если первый параметр заполнен, то обрабатывается ссылка из параметра. В первый параметр также можно вставлять ссылку на переменную вида %ИмяПеременной%

Ссылки должны быть полными, т.е. начинаться с http. Если адрес указан неверно, программа выдаст стандартное сообщение об ошибке: "ОШИБКА: Неверная ссылка для загрузки веб-страницы"

Действие Параметр Значение
Загрузить ИСХОДНЫЙ КОД веб-страницы URL www.excelvba.ru
Кодировка веб-страницы  
Загружать все страницы результатов  
Исходное значение   Результат
(пустая строка)  
ОШИБКА: Неверная ссылка для загрузки веб-страницы

Параметр Кодировка веб-страницы

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

Опция второго параметра "direct" (загрузка страницы без использования компонента WinHTTPRequest) применяется в исключительных случаях, когда не удается загрузить страницу обычным способом или когда не удается вывести страницу в нормальной кодировке при помощи других опций второго параметра (UTF-8, Windows-1251).

Параметр Загружать все страницы результатов

Использование третьего параметра Действия является хорошей альтернативой стандартной схеме настройке парсера (Загрузить исходный код - Получить все ссылки пейджера - Загрузить каждую страницу пейджера отдельно). Если указать в третьем параметре префикс пейджера (в примере ниже это "page"), то действие сразу загрузит все страницы пейджера.

Данный способ работает не на всех сайтах!

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

Особенностью использования 3 параметра является то, что на некоторых сайтах может быть дважды загружена первая страница. В этом случае параметр указывается в виде "page=1", с указанием страницы, с которой надо начинать. Если вам попался такой сайт, то рекомендуется также проверить, как будут загружаться страницы без пейджера. На некоторых сайтах они могут не загрузиться вообще, тогда этот способ не подходит.

В случае, если 3 параметр не срабатывает, попробуйте предварительно дописать к исходному значению текст пейджера: http://excelvba.ru/programmes/Parser/samples?page=0

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

Действие Параметр Значение
Загрузить ИСХОДНЫЙ КОД веб-страницы URL http://excelvba.ru/programmes/Parser/samples
Кодировка веб-страницы  
Загружать все страницы результатов page
Исходное значение   Результат (массив)
(пустая строка)   Здесь массив из 16 страниц

Примечания и рекомендации по использованию

Если Действие возвращает пустое значение:

  • Если возникает ошибка "Сервер не ответил за 6 сек.", то увеличьте Таймаут запроса (на вкладке настроек парсера Дополнительно / Параметры).
  • Если ошибка "Сервер не ответил за 6 сек." возникает мгновенно, проверьте, открывается ли сайт через обычный браузер? Открывается ли сайт через Интернет Эксплорер? Если сайт не открывается через Интернет Эксплорер, попробуйте изменить настройки безопасности Интернет Эксплорера (могут влиять сертификаты безопасности, например, TLS 1.1, TLS 1.2).
  • Если действие возвращает пустое значение, но ошибки "Сервер не ответил за 6 сек." не возникает, попробуйте способ загрузки "direct" (во втором параметре). Попробуйте предварительно (например, в наборе действий Parser_Start) использовать действие "Загрузить страницу с приёмом Cookies", либо проанализируйте, какие заголовки запроса посылает браузер и добавьте их при помощи предварительных действий "Добавить заголовок запроса"
  • Если на компьютере используется соединение через прокси-сервер, то попробуйте прописать настройки прокси в парсере.

Если Действие возвращает значение, но в нем нет необходимого кода:

  • Попробуйте предварительно (например, в наборе действий Parser_Start) использовать действие "Загрузить страницу с приёмом Cookies", либо проанализируйте, какие заголовки запроса посылает браузер и добавьте их при помощи предварительных действий "Добавить заголовок запроса"
  • Возможно, код появляется в результате других запросов. Проанализируйте, какие запросы посылает браузер, и если найдете нужный запрос, используйте его.
  • Возможно, html код появляется в результате действия скриптов. Нужные вам данные могут содержаться в json-формате на самой странице, попробуйте их поискать.
  • Попробуйте загрузить страницу при помощи Интернет Эксплорера (см. раздел справки Internet Explorer)

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