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

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

ВНИМАНИЕ: это действие устарело, и не рекомендуется к использованию.

Ему на смену пришло действие «Загрузить страницу по ссылке», которое имеет все те же возможности, но позволяет использовать 4 варианта загрузки страницы вместо 2 вариантов в старой версии

 

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

  • 1. URL (ссылка на веб-страницу)
  • 2. Кодировка веб-страницы
  • 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 кода. Более подробно см. раздел справки "Кеширование"

Комментарии

Владимир, так вы не грузите главную страницу, - в её коде все равно нет никаких данных.
Да и не загрузится она, - там защита на сайте. Сайт даже в IE не открывается.

Смотрите какие запросы выполняет браузер, обращаясь по API к сайту, и выполняйте такие же запросы.
Например, курсы конвертации можно загрузить по такой прямой ссылке:
https://api2.nicehash.com/main/api/v2/exchangeRate/list

Добрый день. Тестирую пока парсер. С большинством сайтов работает отлично, а вот с https://www.nicehash.com/pricing не получается у меня((. Парсер загружает 1147 символов и всё…
В хроме, при просмотре кода видна вся иерархия. Подскажите где копать, пожалуйста.

Перед загрузкой страницы добавьте отдельное действие для сохранения в переменную

Здравствуйте, как Параметр URL сразу же записать в переменную?

Добрый день!
В программе не нашёл набора действий Parser_Start.

Максим, этот сайт весь на скриптах, там повозиться надо, чтобы получить данные.
Смотрите вторую видеоинструкцию, про POST запросы

Добрый день!
Как парсить данные с сайта с aspx
При попытке загрузить по аналогии с видео инструкцией знаечение при тестах выдается не то что при просмотре кода на странице.
Пробую сайт https://bankrot.fedresurs.ru/SroList.aspx