Pull to refresh

Парсер Google за несколько минут на Delphi7

Reading time2 min
Views2.3K
Для нашей задачи нам понадобится небольшие познания в программировании на Delphi, бесплатные компоненты из набора «Embedded Web Browser».
В самом начале нам требуется иметь установленную Delphi7, и наличие соединения с Интернет, для проверки работы программы.
Для начала скачаем и установим их. Сам компонент расположен тут — 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.
Открываем наш любимый браузер с таким запросом 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
Все – наш просто парсер готов!
Tags:
Hubs:
Total votes 5: ↑2 and ↓3-1
Comments4

Articles