[ CorpseEater @ 25.09.2003. 12:33 ] @
Dakle pokushavam da poshaljem query pretrazhivachu i nakon toga (kada dobijem source-string od istog) parsiram string za linkove koje je vratio i napunim StringGrid.

To sam uspeo (sa alltheweb-om) ali mi to sve izgleda jako sporo jer ako ubacim u petlju slanje query-ja (zbog dobijanja vishe strana rezultata) i punjenje StringGrid-a, String Grid se napuni tek na kraju petlje shto onda izgleda jako sporo jer se cheka da se dobiju SVI podaci od pretrazhivacha.

Potrebno mi je da napravim nekako da se query shalje istovremeno (ili u shto kracjim razmacima) i da se u isto vreme parsira nekoliko strana sa pretrazhivacha i kako koji pristizhe da se puni StringGrid (i da se to odmah vidi).

Nadam se da ste me razumeli - za dobijanje source-a strane koristim :

Code:

Var 
             web_data,query:string;
             query_str:string;
             i:integer;
Begin
             query_str := 'http://www.alltheweb.com/search?c=web&cs=utf-8&q='+query+'&o='+IntToStr(i*10); //i je broj strane rezultata kod pretazhivacha
              web_data:=[b]idhttp1.Get(query_str);[/b]    


Dakle Indy komponenta je u pitanju.

Drugo pitanje je vezano za pretrazhivanje Google-a - alltheweb mogu da pretrazhim (da dobijem rezultate queryja) ali google NIKAKO - kad probam iz programa da shaljem bilo shta na google (npr www.google.com/search?q=blahblah') uvek se javi 403 forbidden - a ako to odradim preko neta sve je OK - verovatno ta skripta tamo proverava referer-a - nije mi jasno - ako je neko imao neka iskustva sa ovim molio bih ga da podeli sa mnom (i ostalima).

I josh sam primetio jednu stvar - www.alltheweb.com mi je do pre dva dana vracjao jednu vrstu html source-a dok mi danas vracja drugu - verovatno imaju par nekih template-ova koji se nekako biraju radi prikazivanja - nije mi problem da parsiram ni jednu ni drugu vecj mi nije jasno koliko imaju tih vrsta templateova da bi ih sve mogao ugraditi radi validnosti programa (da se razumemo - rezulati su isti ali je kod strane drugachiji).

Uopshte ako iko ima neka iskustva sa radom sa pretrazhivachima neka bar postuje neki link ka nekom tutorialu o tome shta vracjaju sve pretrazhivachi i kako parsirati te rezultate.

P.S. Link iz dela FAQ (overflow posted)
http://members.mol.com.mk/alexa/ric/maindelphi.htm
izgleda da ne radi.
[ overflow @ 25.09.2003. 13:00 ] @
Za prvo pitanje ... ako sam dobro razumeo, zeleo bih da ti se rezultat svake strane odmah pojavljuje u SG a ne na kraju, po zavrsetku cele petlje ...

Code:

for i:=1 to n do
begin
   UpisiuSGstranicu[i];
   ...
   Application.ProcessMessages;
end;

Pogledaj help za vise info.

Drugo pitanje (nisam siguran!) ... verovatno je odradjen mali vid zastite - potrebno je da referer bude www.google.com pa ti zato po slanju zahteva google vraca forbidden.
[ CorpseEater @ 25.09.2003. 15:24 ] @
Citat:
overflow:
Za prvo pitanje ... ako sam dobro razumeo, zeleo bih da ti se rezultat svake strane odmah pojavljuje u SG a ne na kraju, po zavrsetku cele petlje ...

Code:

for i:=1 to n do
begin
   UpisiuSGstranicu[i];
   ...
   Application.ProcessMessages;
end;



Hvala ti za ovo - mnogo mi je pomoglo - ali u tom prvom pitanju su se krila dva ali ochigledno da ih nisam lepo razdvojio - dakle ako hocju da uradim vishe poziva nekom serveru (u ovom sluchaju pretrazhivachu) kako to da uradim - znachi hocju npr da dobijam linkove od yahoo-a i od alltheweb-a u isto vreme ili bar da dobijam nekoliko stranica sa jednog pretrazhivacha odjednom - dakle kako to uraditi ?

Citat:
Drugo pitanje (nisam siguran!) ... verovatno je odradjen mali vid zastite - potrebno je da referer bude www.google.com pa ti zato po slanju zahteva google vraca forbidden.


Ovo drugo pitanje mi mnogo znachi - dakle evo ga josh jednom - da li neko zna kako od Google-a dobiti nazad podatke (od pretrazhivanja), da li se to placja i uopshte ako iko zna bilo shta o ovome neka mi pomogne.

[ -zombie- @ 25.09.2003. 17:51 ] @
potraži "google web services".

to je SOAP api preko koga možeš da šalješ upite googlu, i da ti on vraća, bez bilo kakvog parsiranja. imaš u Delphiju SOAP biblioteke, uvezeš wdsl fajl i dobiješ google servis. pošalješ upit, dobiješ rezultate (sve ispod haube ide kao XML, ali te ni to ne zanima), i prikažeš rezultate.

a valjda i alltheweb ima sličan api... potraži
[ overflow @ 25.09.2003. 18:18 ] @
ochigledno da ih nisam lepo razdvojio - dakle ako hocju da uradim vishe poziva nekom serveru (u ovom sluchaju pretrazhivachu) kako to da uradim - znachi hocju npr da dobijam linkove od yahoo-a i od alltheweb-a u isto vreme ili bar da dobijam nekoliko stranica sa jednog pretrazhivacha odjednom - dakle kako to uraditi ?
----------------------------------------------

Pa bas ovako kako ti se zove i tema - pomocu dva thread-a. Kreiras za svaki "kontakt" ka serveru po thread i svuces sta ti treba ... pogledaj TThread klasu za vise informacija...

[ djoca! @ 26.09.2003. 10:16 ] @
Pozdrav
pretpostavljam da zelis da napravis program koji bi proveravao poziciju nekog sajta na pretrazivacima za neke keywords-e. Tipa AgentWebranking. Odlicna ideja, ali imaces problem sa vecinom bitnih pretrazivaca jer uglavnom imaju ugradjene metode za onemogucavanje takvih pokusaja. Sa googlom je takav slucaj sigurno. Mislim da su uveli neku varijantu tipa onemogucavanja izvrsavanja upita.Nisam siguran kako to funkcionise i koji su metod koristili, ali pogledaj malo po SEO forumima, gde su ljudi malo bolje upozanti sa Google metodama za zastitu od prevare.
[ CorpseEater @ 26.09.2003. 14:02 ] @
Pa nije bash tako - nije mi to ideja ali mi svakako treba odgovor od pretrazhivacha - ako je stvarno tako kako onda mogu programi kao webFerret (mislim da je http://www.webferret.com) i ostali da ih sad neimenujem da pretrazhuju internet preko pretrazhivacha - inache ja uspevam dobro to da uradim sa alltheweb-om i sa altavistom a josh ostaje da implementiram podrshku za google - naravno prijavio sam se tamo i uspeo da skinem download file sa uputstvom kako i shta ali sam primetio jednu zanmljivu stvarchicu - ogranichenje je na 1000 pretraga dnevno .

Citat:

ali pogledaj malo po SEO forumima, gde su ljudi malo bolje upozanti sa Google metodama za zastitu od prevare.


Kakvim SEO forumima - pojasni mi molim te ovo...
[ Milos D @ 27.09.2003. 21:24 ] @
Zdravo,

Evo probaj sa mojom multi-thread HTTP komponentom. Upravo sam probao i nema problema sa google.com.

HTTPManager.RequestPage ('http://www.google.com/search?q...oe=UTF-8&start=10&sa=N', ApDir+'test.htm');

HTTPManager.Active := true;

(HTTPManager objekat se sam kreira u initialization delu, verovatno ćeš želeti da prikačiš OnFinish event handler da bi znao kada je stranica skinuta - to moraš u runtime jer komponenta nije design time)