Парсер Google за несколько минут на Delphi7
Black SEO, Google, Tools - SeoCoder  @ 4:14 pm

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

Для начала скачаем и установим их. Сам компонент расположен тут - http://bsalsa.com/DP/download.php?file=0.

Шаги инсталяции:

1.После скачивания, распакуйте в папку "..:\Borland\Delphi7\lib"
3. В Delphi выберите File --> "Open"
d1.gif
Перейдите в папку ("..:\Borland\Delphi5\lib\EmbeddedWB_D2005\Source").

5.Выберите файл "EmbeddedWebBrowser_D7.dpk" и нажмите Open.
d2.gif
6. Нажмите compile и install
7. Все, компонент установлен.
Если все прошло успешно, приступаем к написанию самой программы, так как подготовительный этап закончен.
Из этих компонентов для нашей задачи, нам нужен всего один - TextIEParser.

Создаем форму в Delphi. Помещаем на нее panel и на нее edit и speedbutton. Statusbar и еще memo - установив свойство Align в alClient. Не забываем и про наш IEParser.
d3.gif

Меняем свойство caption у формы.
Получили такой листинг нашей формы:

unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    Edit1: TEdit;
    SpeedButton1: TSpeedButton;
    Memo1: TMemo;
    IEParser1: TIEParser;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.

Начнем методично добавлять функционал. Добавим событие на OnClick нашей SpeedButton. Делается это просто, двойной клик на нашей кнопке на форме.

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
// задаем как парсить гугл и текст запроса из Edit
  IEParser1.URL:='http://www.google.com/ie?q='+Edit1.Text+'&num=100&hl=en&lr=&newwindow=1&c2coff=1';
// Запуск парсера
  IEParser1.Go;
end;

Такой простой код в этой задаче нас устроит, он дает только 100 первых результатов. Большие возможности рассмотрим в следующих примерах, если этот будет полезен народу.

Сейчас наша задача выдрать код ссылок полученных и поместить это в Memo.
Открываем наш любимый браузер с таким запросом http://www.google.com/ie?q=inurl:bbs.cgi&num=100&hl=en&lr=&newwindow=1&c2coff=1
И бегом смотреть исходники страницы. Анализируя код html страницы приходим к выводу, что все что нам нужно есть в тегах A. И что те ссылки, что не ведут на google, нам и нужны.
Нам нужен event нашего IEParser - onAnchor

procedure TForm1.IEParser1Anchor(Sender: TObject; hRef, Target, Rel, Rev,
  Urn, Methods, Name, Host, HostName, PathName, Port, Protocol, Search,
  Hash, AccessKey, ProtocolLong, MimeType, NameProp: String;
  Element: TElementInfo);
begin
   if Pos('google', href) = 0 then Memo1.Lines.Add(href);
   StatusBar1.SimpleText:='Find links: '+IntToStr(Memo1.Lines.Count+1);
end;

d4.gif
Все - наш просто парсер готов!

google.com bobrdobr.ru del.icio.us technorati.com news2.ru rumarkz.ru memori.ru moemesto.ru

25 Comments »

  • СпамЕлку давай!

Comment by div72 — April 18, 2007 @ 4:24 pm

  • уже завтра некий марио ;) будет продавать десктопный парсер написаный на делфе :)

Comment by false — April 18, 2007 @ 5:39 pm

  • Да… парсить по одной странице это жестоко! Хоть цикл сделал бы

Comment by VIP — April 18, 2007 @ 9:34 pm

  • Сам марио пришел. Это пример для новичков. Причем рабочий. Изменить и сделать цикл - 2-3 строчки.

Comment by admin — April 18, 2007 @ 10:29 pm

  • Кстати.
    На очереди.
    1. Мануал по сетапу freebsd для чайников как и я.
    Установка с нуля на отдельный комп или vmware.
    Идеально для отладки скриптов.
    2. Парсер овертюры - за 5 минут.
    Список можно продолжать.

Comment by admin — April 18, 2007 @ 11:43 pm

  • Действительно, просто. За что люблю Дельфи, так это за скорость изготовления рабочего прототипа.

Comment by Nike59 — April 19, 2007 @ 12:40 am

  • раз уж есть желание, то лучче сваяй статью где бы ты описывал нюансы настройки связки апач+мускл виндовой, потому как при грамотной настройке оных отличия от *никс систем - минимальны…
    у нас народ как правило незнает что за зверь REGISTER_GLOBALS, не говоря уж про magic_quotes_gpc и т д… да и минимальный обзор возможностей .htaccess не помешал бы - например как влючить те же register_globals

Comment by false — April 19, 2007 @ 3:22 am

  • Мануал по сетапу freebsd - было бы очень интересно, дома планируется выделенка, поэтому поднять сервак со скриптами и не зависить от хостеров, было бы гуд…

Comment by morze — April 19, 2007 @ 8:44 am

  • автору спасибо

Comment by good — April 19, 2007 @ 11:45 am

  • мое имхо - если у тебя нет дома как минимум 2МБ канала анлимного, то даже не стоит думать о том чтоб с хостингов домой сезжать… канал не тот, а соответсвенно и пинг, и скорость загрузки и т д… на нормальном хостинге запрос чтоб узнать ПР сайта идет меньше секунды, тогда как у меня из дома(2мб) запрос бегает около 2-х сек…

Comment by false — April 19, 2007 @ 2:35 pm

  • сделай плз цикл.

Comment by Seom — April 22, 2007 @ 7:26 pm

  • У меня делфи 2006, чё то не получается проинсталировать этот компонент. Может для 2006 свой способ?

Comment by lextorn — April 27, 2007 @ 7:10 am

  • народ, а никто не пробовал делать например парсилку количества страниц в гугле по заданному кею?
    я вот делаю но сильно мешает отсутствие документации по этому IEParser. даже на официальном сайте ее нет.

Comment by wleader — May 3, 2007 @ 3:08 pm

  • Спрашивай - отвечу

Comment by admin — May 3, 2007 @ 7:33 pm

  • Я тут недавно написал небольшой парсер яши по нужному ключевику. Выдает топ10 и все бэки по ключевику на каждый сайт. Просто раньше юзал такую на raznoves.ru/scripts/ , а потом она стала косячить…

    Если кому надо - http://anna.dotfix.ru/check/ . Пожелания и вопросы приветствуются *)

Comment by Юрий — May 6, 2007 @ 12:00 pm

  • Расскажи плз как цикл сделать.

Comment by Andrew — May 11, 2007 @ 10:01 pm

  • Какой именно цикл?

Comment by Юрий — May 16, 2007 @ 7:24 am

  • Народ, как бароться с этой фигней когда через нее парсят твой сайт. А то сервер просто дохнет…. Каждую секунду идет запрос.

Comment by Андрей — May 29, 2007 @ 7:26 am

  • Юрий. Имелся ввиду цикл в парсере, чтобы парсилос не первые 100 ссылкок а все в общем… Интересно было бы послушать как это сделать. Я так понимаю в том примере нужно цикл добавить который будет с каждой страницы в ответе гуглы выдирать ссылки?

Comment by Stas — June 24, 2007 @ 3:18 pm

  • Про цикл к парселке :
    Кидаем на форму еще один Edit для количества страниц (или можно жестко задать в процедуре)
    Обьявляем переменную count и page
    Присваиваем ей значение количества страниц с Edit’a или вручную.

    Меняем немного запрос

    IEParser1.URL:=’http://www.google.com/ie?q=’+Edit1.Text+’&num=100&hlen&lr=&c2coff=1&start=’+page

    создаем цикл (по FOR или While - фиолетово ) и меняем переменную count с дискретностью 1 и увеличиваем переменную page : page :=inttostr(count*100);

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

Comment by DeV — July 9, 2007 @ 4:22 pm

  • [...] российские компании. Google ударил по продажным блогам Парсер Google за несколько минут на Delphi7 Генеральный план Google: тотальный контроль Индексация в [...]

Pingback by Самые читаемые посты на блогах — October 31, 2007 @ 1:49 am

  • [...] российские компании. Google ударил по продажным блогам Парсер Google за несколько минут на Delphi7 Генеральный план Google: тотальный контроль Индексация в [...]

Pingback by Все об Интернет-маркетинге » Самые читаемые посты на блогах — November 29, 2007 @ 3:01 am

  • Полезный маиериал и ценный компонент! Автору - огромный респект!
    Теперь пара слов по теме.
    1. Не забывайте в Memo1 ставить горизонтальную прокрутку, иначе велика вероятность того, что счетчик напарсенных ссылок будет врать.
    2. Цикл для сквозного парсинга (количество шагов) вполне можно не задавать вручную. Я, напр, реализовал его как While по условию признака последней страницы выдачи.

Comment by Adm123 — December 26, 2007 @ 9:56 am

  • Можно выложить саму компоненту: EmbeddedWB ?
    Сайт разработчика: bsalsa.com => закрыт

    Спасибо!

Comment by Рустам — March 17, 2008 @ 9:57 am

Comment by SeoCoder — March 17, 2008 @ 10:56 am


RSS feed for comments on this post. TrackBack URL

Leave a comment

 


Подписка по RSS
Comments RSS

TNX.net - уникальный международный сервис для вебмастеров и оптимизаторов

Категории

Блоги:



Старые статьи

Meta: