Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Парсер Google за несколько минут на Delphi7 |

23.11.2007, 23:11
|
|
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме: 5516499
Репутация:
3702
|
|
Парсер Google за несколько минут на Delphi7
Для нашей задачи нам понадобится небольшие познания в программировании на Delphi, бесплатные компоненты из набора .
В самом начале нам требуется иметь установленную Delphi7, и наличие соединения с Интернет, для проверки работы программы.
Для начала скачаем и установим их. Сам компонент расположен тут - http://bsalsa.com/DP/download.php?file=0.
Шаги инсталяции:
1.После скачивания, распакуйте в папку “..:\Borland\Delphi7\lib”
3. В Delphi выберите File –> “Open”
Перейдите в папку (”..:\Borland\Delphi5\lib\EmbeddedWB_D2005\Sourc e”).
5.Выберите файл “EmbeddedWebBrowser_D7.dpk” и нажмите Open.
6. Нажмите compile и install
7. Все, компонент установлен.
Если все прошло успешно, приступаем к написанию самой программы, так как подготовительный этап закончен.
Из этих компонентов для нашей задачи, нам нужен всего один - TextIEParser.
Создаем форму в Delphi. Помещаем на нее panel и на нее edit и speedbutton. Statusbar и еще memo - установив свойство Align в alClient. Не забываем и про наш IEParser.
Меняем свойство caption у формы.
Получили такой листинг нашей формы:
PHP код:
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. Делается это просто, двойной клик на нашей кнопке на форме.
PHP код:
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...dow=1&c2coff=1
И бегом смотреть исходники страницы. Анализируя код html страницы приходим к выводу, что все что нам нужно есть в тегах A. И что те ссылки, что не ведут на google, нам и нужны.
Нам нужен event нашего IEParser - onAnchor
PHP код:
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;
Все - наш просто парсер готов!
(c)
|
|
|

23.11.2007, 23:16
|
|
Reservists Of Antichat - Level 6
Регистрация: 07.07.2007
Сообщений: 642
Провел на форуме: 3241649
Репутация:
1632
|
|
ну это в кодинг скорее нада! а вообще статья гуд!
__________________
<<<< Смотри на дату моей реги и завидуй!!!
|
|
|

24.11.2007, 00:55
|
|
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
Провел на форуме: 2715445
Репутация:
588
|
|
"Парсер Google за несколько минут на Delphi7"
"\Borland\Delphi5\lib\EmbeddedWB_D2005\Source”
нестыковка получается =) ставить 2 версии дельфи для простенького
парсера?
|
|
|

28.02.2008, 18:38
|
|
Познающий
Регистрация: 17.10.2006
Сообщений: 83
Провел на форуме: 552846
Репутация:
55
|
|
я могу сделать это более ефективно
в 2 запроса бровзеру
http://www.google.com/search?num=100&q=inurl:bbs.cgi
javascript:s="";for(i=0;i<document.links.length;i+ +)if((document.links[i].toString().indexOf("google")==-1)&&(document.links[i].toString().indexOf("/search")==-1) )s+=(document.links[i]+"<br>");document.write(s);
есть также на пхп, вытягивает 10 страниц по 100 ссылок и пишет их в файл
в добрые руки отдам бесплатно
кому нада - стукните на icq 26%76%574 (% заменить на 1)
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|