Поиск по блогу

Показаны сообщения с ярлыком Synapse. Показать все сообщения
Показаны сообщения с ярлыком Synapse. Показать все сообщения

среда, 10 марта 2010 г.

Пример парсинга вопросов с labs.wordtracker.com (Synapse, Delphi)

Сегодня выкроила время для углубленного изучения Synapse. Только, к сожалению, провела его не очень продуктивно.

Первым делом посмотрела наработки Сергея (либу IngHTTPSend), предложенные им в комментарии к моей первой статье о Synapse. Безусловно, у него в обертку включены очень полезные функции (в том числе уделено большое внимание кодировкам). Но у каждого программиста есть еще ряд функций, которые он таскает с собой в голове и дописывает к любым своим либам :) Например, у меня есть некоторые заморочки по поводу хэдеров запросов. Я обычно создаю несколько функций для формирования заголовков с одинаковым названием, но с разным набором входных параметров. Например, в функцию может передаваться UserAgent, а может и не передаваться (если не передается, то берется случайный из списка возможных). Обработчики кодов ответа (в частности, 3XX) я тоже обычно выношу.

А потом пришла к выводу, что ни для чего "глубокомысленного" я сегодня не готова, глянула в списочек ссылок ресурсов, подходящих для демонстрации написания простейших парсеров, и решила поместить в блоге пример с кодом парсера вопросов с http://labs.wordtracker.com/keyword-questions/.
parsing keyword SEO questions from wordtracker

Ресурс Wordtracker.com я уже брала в качестве "подопытного" для иллюстрирования возможностей cURL.

Вопросы будем добывать с использованием Synapse.

четверг, 4 февраля 2010 г.

Работа с библиотекой Synapse в Delphi - начало

Обычно для работы с инетом в своих приложениях я использую компоненты Indy или сокеты. И вот решила, что неплохо было бы расширить свой кругозор и познакомиться с другими библиотеками (и будет вдвойне приятно, если это знакомство окажется полезным).

Первое, что я решила опробовать, это библиотека Synapse. Я уже не раз встречала упоминания о ней, но все как-то не доводилось поработать.

Скачиваем, устанавливаем.

Установка Synapse

(в моем случае на старенький Delphi 7).

1. Распаковать архив в какую-нибудь папку (в Source, например)
2. В меню идем Tools - Environment Options - Library и добавляем в Library Path путь к папке ..Source\SYNAPSE\LIB
3. В новосозданном проекте добавляем в Uses-ы httpsend и synacode (при надобности).

Пришло время "HelloWorld"-а.

Простые примеры кода с использованием Synapse


Давайте начнем с самых простых вещей - с получения содержимого страницы.

Поместим на форму кнопку и TMemo, добавим в uses httpsend, напишем обработчик нажатия кнопки:

procedure TMainF.Button1Click(Sender: TObject);
begin
if not HttpGetText('http://parsing-and-i.blogspot.com', Memo1.Lines) then
ShowMessage('Что-то не получилось.');
end;

После нажатия на кнопку в мемо появилось содержимое страниц. Старт взят: с помощью HttpGetText задачу выполнили.

Дальнейшее изучение библиотеки можно проводить так — заглянуть непосредственно в файл библиотеки (httpsend.pas). Главным классом является THTTPSend. Даже просто изучив его структуру, можно понять принципы работы и возможности.

Итак, HTTPSend.Document возвращает содержимое всего документа. Поэкспериментируем с использованием еще каких-нибудь элементарных функций. Например, получим заголовок страницы и отдельно код ответа.

Поделиться