Google søge resultater i listview

Tags:    visual-basic

<< < 123 > >>
Er der nogen der kan forklare hvordan man får googles søge resultater ind i listview eller listbox.

Det jeg mener er at hvis man laver et program som søger på google, skal resultaterne komme frem i listview som links og med navnet på siden.. som hvis jeg for eksempel søger på google på dvd, ville det første link være:
DVDpriser.dk Din danske prisguide - DVDpriser.dk

Det er lidt ligesom det der er her:
http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=66496&lngWId=1

jeg kan ikke finde noget nogen steder som forklare hvordan man får forkortet/encoded eller sådan noget en url adresse.
der er en kode i det program der er link til lige ovenover
som er:
Fold kodeboks ind/udKode 


men det forstår jeg ingenting af.. :-(



25 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Prøv at studere de forskellige VB funktioner, måske du kunne lære noget ;)

Først definere du 3 nye globale variable øverst i projektet:
Fold kodeboks ind/udKode 


Dernæst 3 nye funktioner:
NewSearch: Kaldes med søgetekst og antal hits pr. side. den returnere Googles søge URL.
SearchNext: Kaldes og returnere Googles søge URL.
SearchPrevius: Kaldes og returnere Googles søge URL.
HUSK at i din søge tekstbox skal du nu ikke skrive hele URL'en men kun det søgeord du er interessere i.

Fold kodeboks ind/udKode 


Så har du dine 3 knapper:
Command1: Søg
Command2: Næste
Command3: Forrige

Koden til de 3 knapper ser således ud:
Fold kodeboks ind/udKode 




Jeg har lavet en test hvor jeg søger efter "hej" på google. Lav en form men følgende:
Knap: Command1 (Søge knap)
Tekstboks: Text1 (URL adressen)
Tekstboks: Text2 (Resultat) Husk at sætte Multiline=True
I menuen Project > References, marker udfor Microsoft XML v2.6

Indsæt URL adressen i tekstboks1 og tryk på Command1.
Feks: "http://www.google.dk/search?hl=da&q=hej&meta="
Se resultatet i tekstboks2. Nu må du så parse denne tekst og vise det indhold du syntes er interessant i en listboks.

Fold kodeboks ind/udKode 




Hmm det virker fint nok, hvordan får man så fjernet alle de tags der nu kommer frem så det bliver til for eksempel det første der kommer frem når man søger på google på hej som er
"Tju Hej - Sikker Leg"

Altså hvordan får jeg lige fjernet alt det tekst jeg ikk skal bruge.. der kommer jo rigtig mange linier frem med tekst som dette:

<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>hej - Google-søgning</title><style><!--
div,td{color:#000}
.f{color:#6f6f6f}
.flc,.fl:link{color:#77c}
a:link,.w,a.w:link,.w a:link,.q:visited,.q:link,.q:active,.q{color:#00c}




Som jeg skrev, skulle du jo parse dit resultat. Det der ud som om at hvert google link starter med "<a class=l href="
Så vi må lave et loop som søger efter dette, og pille http adressen ud og putte den i listboksen.
Brug eksemplet fra før og add en listboks til din form:
Listboks: List1.
Brug følgende subrutine og kald den med resultatet.. og vupti.
Fold kodeboks ind/udKode 




Som jeg skrev, skulle du jo parse dit resultat. Det der ud som om at hvert google link starter med "<a class=l href="
Så vi må lave et loop som søger efter dette, og pille http adressen ud og putte den i listboksen.
Brug eksemplet fra før og add en listboks til din form:
Listboks: List1.
Brug følgende subrutine og kald den med resultatet.. og vupti.
Fold kodeboks ind/udKode 



Hmm hvordan kalder du resultatet.. er kun nybegynder.. hehe.. har prøvet i et par timer nu men kan ikke lige regne det ud selv.. det må du undskylde.. heh.. og tak for hjælpen



Ser du, i det første eksempel har du din knap: Command1_Click, Her kalder du GetHPPPSource med søgekriteriet i Text1.Text, og resultatet ´returneres i variablen Text. Bagefter viser du resultatet (indholdet af variablen Text) i tekstboks2 (Altså Text2.Text = Text)
Fold kodeboks ind/udKode 


Igår skrev jeg en routine som ja, du bare skulle kalde med resultatet fra GetHTTPSource. Så istedet for at vise resultatet i Tekstboks2 kalder du bare den nye routine med variablen Text. Din Command1_Click kunne derfor se således ud:
Fold kodeboks ind/udKode 





Når på den måde.. hehe.. det var slet ikke så svært at forstå.. tak for hjælpen.. gir dig lige 100 points.. :-)



hvordan får man flere resultater end kun højest 10...?

Til andre der læser med i denne tråd og vil prøve sig frem, vil jeg lige tilføje nogle ting i måske kan bruge:

Du skal bruge 4 knapper, 1 TekstBox, 1 ListBox og 1 CommonDialog.

I menuen Project > References, marker udfor Microsoft XML v2.6

Knappernes caption:

Command1 = Søg
Command2 = Ryd
Command3 = Fjern valgte
Command4 = Gem

Kode til søg knappen:
Fold kodeboks ind/udKode 


Kode til ryd knappen:
Fold kodeboks ind/udKode 


Kode til fjern valgte knappen:
Fold kodeboks ind/udKode 


Kode til gem knappen:
Fold kodeboks ind/udKode 


Koden til at parse teksten:
Fold kodeboks ind/udKode 


Koden til GetHTTPSource:
Fold kodeboks ind/udKode 


Kode til når man klikker på et link i listboxen:
Fold kodeboks ind/udKode 


Declarations:
Fold kodeboks ind/udKode 







Indlæg senest redigeret d. 25.11.2006 18:26 af Bruger #8719
Prøv selv at gå ind på Google og leg lidt med det. Men prøv at gætte hvormange "hej" hits den finder med denne URL:
"http://www.google.dk/search?num=40&hl=da&as_qdr=all&q=hej&meta="
;)



Hmm det kan jeg ikke lige regne ud.. har prøvet at ændre på de tal i koden men så virker skidtet ikk..
og med den url finder den jo:
Søgeresultaterne 1 - 40 ud af ca. 36.700.000 for hej. (0,07 sekunder)

kan ikke se hvad det er der begrænser den til kun 10...?



<< < 123 > >>
t