Здравствуйте, дорогие читатели блога 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.
Спасибо за внимание. Автор блога Владимир Баталий