Így a kereső robot

Az adott kereső: A kereső robot

hogyan lehet egy kereső?

hogyan lehet egy kereső robot, pók, lánctalpas, indexelő (pók, robot) Delphi?

Tab oldalak sorrendjét, látogatások gyakoriságának, Hurkolja védelme, valamint a kiválasztási kritériumai kulcsszavak határozzák meg a kereső algoritmusok.

Továbbá, sok a keresőmotorok, hogy a felhasználó a lehetőséget, hogy adjunk egy hely a sorban az indexelés. Általában ez jelentősen felgyorsítja az indexelés honlapján, és azokban az esetekben, amikor nem külső hivatkozások nem vezetnek a honlap általában az egyetlen lehetőség, hogy állapítsa meg a létezését.

Korlátozza indexeli webhelyét, akkor használja a robots.txt fájlt, de néhány keresők figyelmen kívül hagyhatja a fájl meglétét. Teljes védelmet nyújt indexálási mechanizmusok, amelyek kikerülik míg a pókok nem lehet csinálni. Általában - jelszó beállításával az oldalon, vagy az a követelmény, hogy töltsenek ki egy regisztrációs lapot, mielőtt kap hozzáférést az oldal tartalmát.

KÓD robotunk, amely index a weboldalakat, és elkészíti a fájl későbbi behozatalára index, amely a kereső fogja használni.

Itt van egy ilyen kódot, akkor nem csak írni, és megérteni, hogyan működik, hogy adjunk még egy pár zsetont az övé. Például adjunk hozzá még néhány szálat kezelni a több oldal egy rövid ideig. Megvan 2 szál: a fő és az eljárást, amely közvetlenül kapcsolódik a helyszínen, és olvassa el a meta tagek leírást, kulcsszavakat cím + saját (H1, H2, H3, H4, H5, H6, erős, b, em, i, és így tovább. d.)

Először nyílt Delphi, egy új formája set gomb 3 1 Folyamatsáv, 2 Label'a 1 idHTTP

A bal oldali oszlopban (TreeView) választani a formát, akkor az Object Inspector és nyissa meg a Programok fülre, ahol OnCreate - dupla kattintással a legördülő menüből a jobb jön létre, hogy egy új eljárás, amelyben az írási dest: = TStringList.Create;

eljárás TForm1.FormCreate (Sender: TObject);
kezdődik
dest: = TStringList.Create;
végén;

A Button1 ugyanúgy megyünk a OnClick be ezt a kódot

eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
stop: = false;
Button1.Enabled: = false;
Button2.Enabled: = true;
createthread (nil, 128, @Execute, önálló, 0, t); // Létrehozunk flow
végén;

Az első gomb egy szál

ugyanúgy teszünk a kódot a második gomb

eljárás TForm1.Button2Click (Sender: TObject);
kezdődik
stop: = true;
végén;

Ez a kód leállítja az áramlást.

eljárás TForm1.FormDestroy (Sender: TObject);
kezdődik
dest.Free;
végén;

Gombra a szöveges fájl, amely egy kérés egy MySQL adatbázis - import indexelt adatok

eljárás TForm1.Button3Click (Sender: TObject);
kezdődik
dest.SaveToFile ( 'base.txt');
végén;

A legfontosabb: lánctalpas Szív

eljárás Execute (p: pointer);
var
lista: TStringList;
i: integer;
s, d, k, t: string;
kezdődik
lista: = TStringList.Create;
list.LoadFromFile ( 'urls.txt');
dest.Clear;
Form1.Label1.Caption: = 'Info:' + inttostr (list.Count) + 'oldalakat.';
Form1.ProgressBar1.Max: = list.Count;
i: = 0 list.Count-1 do
megpróbál
Ha megáll, akkor törni;
s: = Form1.IdHTTP1.Get (list.Strings [i]);
Form1.ProgressBar1.Position: = i + 1;
DeleteLineBreaks (s);
ExtractHead (s);
t: = GetTitle (s);
ExtractMeta (s);
d: = GetMetaData ( 'leírás', s); // a függvényt GetMetaData
k: = GetMetaData ( 'kulcsszavak', s); // a függvényt GetMetaData
dest.Add ( 'INSERT INTO bázis (URL, cím, leírás, kulcsszavak) ÉRTÉKEK ( „' + list.Strings [i] + ' ""' + t + ' ""' + d + ' ""' + K + '') „); // elkészíti az import fájl
kivéve
Form1.ProgressBar1.Position: = i + 1;
Folytatás
végén;
list.Free;
Form1.ProgressBar1.Position: = 0;
Form1.Button2.Enabled: = false;
Form1.Button1.Enabled: = true;
ExitThread (0);
végén;

Az eljárás csatlakoztatásához egy weboldalt, hanem kezdték a szerver html-kódot, és „pull” ki a címke értékének leírása, megnevezése, kulcsszavak.

A következő eljárás DeleteLineBreaks. ő írja html-kód egy sorban a kényelem.

eljárás DeleteLineBreaks (var src: string);
var
html: TStringList;
i: integer;
kezdődik
html: = TStringList.Create;
html.Text: = src;
src: = '';
i: = 0 html.Count-1 do
src: = src + html.Strings [i];
html.Free;
végén;

Mivel a címkék címkék Azt hagyjuk csak azok tartalmát.

A függvény neve a weboldal, azaz közötti értékek címkék

Így csak a meta tagek.

Függvényértékeket származó tag leírás és a kulcsszavak, akik valamilyen tulajdonság indult.

Ez az! Robotunk írták. Meg fogják használni, mint a bázis urls.txt URL a weboldalak. Egy új szöveges fájl base.txt ispolzovat behozni, az index.

1 rész a leckét „hogy nem a kereső webes kereső felület (Finder: The Sequel)”