Здравствуйте, дорогие читатели блога scriptcoding.ru. В этой статье мы рассмотрим компонент Chilkat.Spider, который позволяет производить парсинг сайтов.
В этой публикации я не буду приводить примеров программного кода, я только рассмотрю описание методов и свойства объекта Chilkat.Spider. Что бы просмотреть примеры кода, можете почитать статью «Скрипт для поиска битых ссылок«, из этой же оперы, но с использование другого компонента можете ознакомиться с публикацией «Сохранение электронной почты«.
И так, давайте для начала посмотрим, какие возможности для парсинга сайтов представляет класс Chilkat.Spider:
- Пробег по сетевому ресурсу с учетом файла Robots.txt
- Создание списка внешних ссылок страниц сетевого ресурса
- Возможность кешировать страницы для будущего их обхода
- Получение информации по мета тегам (Title, Description, Keywords)
- Поддерживает работу с протоколом HTTPS
- Создание шаблона для исключения заданных URL_адресов
- Возможность исключения внешних ссылок по заданному шаблону
- Дает возможность задавать тайм-аут, счетчик и лимит страниц
- Позволяет задать максимальную длину URL_адреса для избегания процесса зацикливания
- Возможность задать максимальный размер страницы
Информацию, примеры и сам компонент (исполняемый файл) можно скачать на www.chilkatsoft.com, однако, ссылку на архив с распакованными компонентами я дам в этой статьи ниже.
Свойства объекта Chilkat.Spider — парсинг сайтов
AvoidHttps – Если данное свойство установить в 1 (TRUE), то обход будет производиться по всем HTTPS URLs, по умолчанию свойство равно 0 (FALSE).
CacheDir — Указывает каталог кэша используемый для просмотра. Если одно из свойств FetchFromCache или UpdateCache равно TRUE, это расположение кэша будет использоваться. Примечание: Internet Explorer, Netscape, FireFox кэши полностью отделены от кэша каталога Chilkat Spider. Вы должны указать новый и пустой каталог.
ChopAtQuery — Если свойство равно 1 (TRUE), то все URL_адреса удаляются автоматически при добавлении в список исключений. По умолчанию установлено значение 0 (FALSE).
ConnectTimeout — Максимальное количество секунд ожидания при подключении к серверу HTTP.
Domain — Доменное имя, которое в настоящее время используется. Данное свойство предварительно устанавливается в методе Initialize. Пакрсинг интернет сайтов.
FetchFromCache — Если равно 1 (истинно), то страницы извлекаются из кэша, когда это возможно. Если 0, то кэш игнорируются. Значение по умолчанию 1. Несмотря на это, если CacheDir не установлен, то кэш не используется.
LastErrorHtml — Предоставляет информацию в формате HTML о последних метод / свойство. Если вызов метода возвращает значение, указывающее на сбой, или ведет себя неожиданно, то данное свойство позволит получить информацию об ошибке.
LastErrorText — Предоставляет информацию в текстовом формате о последних метод / свойство. Если вызов метода возвращает значение, указывающее на сбой, или ведет себя неожиданно, то данное свойство позволит получить информацию об ошибке.
LastErrorXml — Предоставляет информацию в XML-формате о последних метод / свойство. Если вызов метода возвращает значение, указывающее на сбой, или ведет себя неожиданно, то данное свойство позволит получить информацию об ошибке.
LastFromCache — Равно 1, если последняя страница индексации была получен из кэша. В противном случае равна 0. Парсинг страниц и сайтов.
LastHtml — HTML содержимое последней выгружаемой страницы.
LastHtmlDescription – Позволяет получить описание (Description) с последней выгружаемой страницы HTML.
LastHtmlKeywords — Позволяет получить ключевые слова (Keywords) с последней выгружаемой страницы HTML.
LastHtmlTitle — Позволяет получить заголовок (Title) с последней выгружаемой страницы HTML.
LastModDate — Последнее изменение даты последней индексации страницы. Парсим сайты.
LastUrl – URL_адрес на последней странице индексации.
MaxResponseSize – Максимально допустимый размер ответа HTTP. Будут автоматически игнорироваться страницы, размер которых больше заданного. Значение по умолчанию 250000 байт.
MaxUrlLen – Максимально допустимая длина URL_заголовка. Адреса_URL, размер которых больше заданного, автоматически добавляются в список исключений. Значение по умолчанию 200.
NumAvoidPatterns — Число шаблонов ранее установленных по методу AddAvoidPattern.
NumFailed — Количество URL_адресов возвративших неудачу.
NumOutboundLinks — Количество исходящих ссылок в списке страниц. Как парсить сайты программно.
NumSpidered — Количество ссылок в уже индексируемом списке URL_адресов.
NumUnspidered — Количество адресов в исключающем списке URL_адресов.
ProxyDomain — (Предварительная) доменное имя прокси-сервера, если используется HTTP прокси. Парсим сайты.
ProxyLogin — (Предварительная) Если прокси HTTP используется, и это требует проверки подлинности, это свойство определяет HTTP прокси логин.
ProxyPassword — (Предварительная) Если прокси HTTP используется, и это требует проверки подлинности, это свойство определяет HTTP прокси пароль.
ProxyPort — (Предварительная) номер порта прокси-сервер, если HTTP прокси используется. Парсинг сайтов.
ReadTimeout — Максимальное количество секунд ожидания при чтении с HTTP сервера.
UpdateCache — Если равно 1 (истинно), то страницы, будут сохранены в кэше. Если 0, то кэш игнорируются. Значение по умолчанию 1. Несмотря на это, если CacheDir не установлен, то кэш не используется.
VerboseLogging — Если установлено в 1, то содержимое LastErrorText (LastErrorXml или LastErrorHtml) может содержать более подробную информацию. Значение по умолчанию равно 0. Ведение подробного журнала следует использовать только для отладки. Слишком большое количество данных может привести к негативным последствиям.
Version — Версия (например, «1.0») компонента Spider.
Методы объекта Chilkat.Spider — парсинг сайтов
AddAvoidOutboundLinkPattern(pattern) — Добавляет символов подстановки шаблона для предотвращения сбора адресов для исходящих ссылок. Например, если «* Google *» добавляется, то любые исходящие ссылки, содержащие слово «Google» будут игнорироваться. Символ «*» означает ноль или более любых символов.
AddAvoidPattern(pattern) — Добавляет символов подстановки шаблона для предотвращения обхода соответствующих урлов. Например, если добавляется «* register *», то любой УРЛ, содержащий слово » register » будет проигнорирован. Символ «*» означает ноль или более любых символов. Парсинг интернет сайтов.
AddMustMatchPattern(pattern) — Добавляет символов подстановки шаблона для ограничения индексации заданных URL_адресов, которые соответствуют шаблону. Например, если добавляется «* / register / *», то только URL_адреса, содержащие «/ register /», будут индексироваться. Это полезно только при обходе части блога. Символ «*» означает ноль или более любых символов.
AddUnspidered(url) — Вы должны вызывать этот метод один или несколько раз, чтобы обеспечить отправную точку обхода. Метод добавляет один URL_адрес к внутренней очереди списка из URL-адресов для индексации. Парсим сайты.
CanonicalizeUrl(url) – Метод обеспечивает видоизменение заданного URL адреса, преобразовывает все символы в строчные, удаляет лишние символы и многое другое.
ClearFailedUrls() — Очищает внутренний список компонентов из URL-адреса, которые не могут быть загружены.
ClearOutboundLinks() — Очищает внутренний список компонентов исходящих адресов, которые будут автоматически накапливаться во время обхода.
ClearSpideredUrls() — Очищает внутренний список компонентов из уже проиндексированных адресов, которые будут автоматически накапливаться во время обхода.
CrawlNext() — Сканирует следующий URL адрес .URL адреса извлекаются из списка индексации. Любые новые ссылки в том же домене, но еще не проиндексированные будут добавлены в список неиндексируемых. Парсить сайты. Любые новые исходящие ссылки будут добавлены в список исходящих URL. Этот метод возвращает HTML на странице загрузки. Если больше нет ссылок в списке, возвращается нулевое значение. Информация о URL доступна в свойствах LastUrl, LastFromCache и LastModDate.
FetchRobotsText() — Возвращает содержимое файла robots.txt из области обхода. Это позволяет исключить сканирование адресов, запрещенных в файле robots.txt.
GetDomain(url) — Возвращает часть доменного имени URL. Например, если URL адрес является «http://www.scriptcoding.ru/test.asp», то метод возвратит «www. scriptcoding.ru «. Возвращает 0 при неудаче.
GetFailedUrl(index) — Возвращает N-ый URL в неудачном URL списке. Индексация начинается с 0. Возвращает 0 при неудаче.
GetOutboundLink(index) — Возвращает N-ый URL в список исходящих URL ссылок. Индексация начинается с 0. Возвращает 0 при неудаче.
GetSpideredUrl(index) — Возвращает N-ый URL в уже индексируемом URL списке. Индексация начинается с 0. Возвращает 0 при неудаче.
GetUnspideredUrl(index) — Возвращает N-ый URL в не индексируемом URL списке. Индексация начинается с 0. Возвращает 0 при неудаче.
Initialize(domain) — Инициализация начального домена для индексации. Вызов Initialize удаляет все модели добавленные с помощью методов AddAvoidOutboundLinkPattern, AddAvoidPattern и AddMustMatchPattern. Как осуществить парсинг интернет сайтов. Обход URL-адресов будет произведен в пределах одного домена.
RecrawlLast() — Повторный обход последнего индексируемого URL. Это полезно, когда куки установленные при предыдущей загрузке страницы вызывают страницу, которая будет загружаться по-разному в следующий раз. парсить сайты.
SaveLastError(filename) — Сохраняет последнюю информацию об ошибках (содержание LastErrorXml) в формате XML-файла.
SkipUnspidered(index) — Перемещение URL из неиндексируемого списка к индексируемому. Это позволяет приложению пропустить конкретный URL.
Парсинг сайтов можно также осуществить с помощью компонентов вида XMLHTTP, так как они позволяют отправлять http запросы на заданный URL адрес. Также можете ознакомится с объектами JSForm.Window и JSSys3.Ops.