Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181

Google Beschreibungen auslesen?
Verfasst am: 19.04.2008, 19:28

Wie kann ich bei google die Beschreibungen auslesen?
Ich geb halt zb "haus" bei google ein und das prog gibt mir immer die beschreibungen zu den links aus(das was immer ganz normal schwarz geschrieben ist^^)
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 19.04.2008, 22:07

1. Quelltext per Microsoft Inet Control oder Winsock beschaffen.
2. In einer Schleife mit InStr nach markanten Punkten suchen.
3. Per Mid$ den Text rauskopieren.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 19.04.2008, 22:15

Kann du mir das bitte genauer erklären oder ein beispiel geben?
 
Marduk_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.06.2007
Beiträge: 389


Verfasst am: 19.04.2008, 22:39

Also, wenn du dir den _super_ Quelltext anschaust(ohne Scheiss, das ist Obfuscation Mr. Green (=>wiki)), stellst du fest, dass unsere Ergebnisse in einem <div>-Tag stehen und zwar mit der id "res". Die einzelnen Links sind wiederum in einem div-Tab namens "g" gespeichert(also 10 g-div-Tags auf einer Seite). Das g-Tag ist in eine Überschrift h2 und in eine Tabelle gegliedert table. Für die Beschreibung jedes Links suchen wir in der Tabelle weiter. In der Tabelle befinden sich weitere tr-Tags usw. Und ein div-Tag der Klasse "std". Genau das brauchen wir, da steht nämlich die Beschreibung plus grüner Link drin;)
Gucken wir uns den restlichen Code an, ob diese Klasse vllt noch bei anderen Elementen benötigt wird. ... Hmm, nein, nur bei unseren Beschreibungen, gut Very Happy

Jetzt wissen wir schon mal, wo in dem Code unsere Ergenisse stehen.
Wenn wir den Index von dem String haben "<div class="std">" brauchen wir nur noch die Länge der Beschreibung und wir können ganz leicht jede Beschreibung extrahieren. Natürlich noch ein bisschen "verschönern", also die lästigen HTML-Tags replacen.


Wink


Genau genug erklärt? Mr. Green
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 20.04.2008, 09:47

Hm irgendwie bekomm ich das nicht richtig hin,kannst du mir vl ein bsp geben?^^

Bei mir scheiterts da schon^^

Code:
Dim Quelltext As String
Dim Search As String

Quelltext = Inet1.OpenURL("http://www.google.de/search?hl=de&q=hans")
Search = "<div class="


    Pos1 = InStr(Quelltext, Search)
    MsgBox Pos1


da kommt irgendwie "0" raus^^

Und wie kann ich bei search "<div class="std">" angeben,bei mir kommt immer ein fehler
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.04.2008, 11:06

1. Quelltext auslesen: http://www.vbarchiv.net/tipps/details.php?id=268

2. "<div class=""std"">"


Edit//
Weiß nicht wie das beim Internet Transfer Control ist.
Evt. ist die Seite noch nicht fertig geladen, oder es gibt halt irgendein anderes Problem mit der Url.
Überprüf halt mal welchen String er zurückgibt.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 20.04.2008, 12:46

Hab ihn ja zuerst in ne textbox geladen
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.04.2008, 13:26

Dann machste was falsch beim suchen.

Wenn du keine Infos gibst, kann man auch keine zurückgeben.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 20.04.2008, 14:25

Was soll ich denn falsch machenß hab ja den code schon gepostet und er gibts mir immer 0 aus aber dass kann nicht stimmen
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.04.2008, 15:08

Denkst du die InStr Funktion ist fehlerhaft? Rolling Eyes

Hab dir schon gesagt worans liegen könnte.
Und am einfachsten wäre es wenn du mal dein Prog einfach debuggen würdest und schaust was passiert -.-
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
DFJ_
Poster
Poster

Anmeldedatum: 15.10.2007
Beiträge: 156


Verfasst am: 20.04.2008, 15:16

doch kann es bei google da schutz drin hat

mach mal text1.text = quelltext

dann wirst du merken in deim quelltext variabel steht dieses

Code:

<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><title>403 Forbidden</title><style><!--body {font-family: arial,sans-serif}div.nav {margin-top: 1ex}div.nav A {font-size: 10pt; font-family: arial,sans-serif}span.nav {font-size: 10pt; font-family: arial,sans-serif; font-weight: bold}div.nav A,span.big {font-size: 12pt; color: #0000cc}div.nav A {font-size: 10pt; color: black}A.l:link {color: #6f6f6f}A.u:link {color: green}//--></style><script><!--var rc=403;//--></script></head><body text=#000000 bgcolor=#ffffff><table border=0 cellpadding=2 cellspacing=0 width=100%><tr><td rowspan=3 width=1% nowrap><b><font face=times color=#0039b6 size=10>G</font><font face=times color=#c41200 size=10>o</font><font face=times color=#f3c518 size=10>o</font><font face=times color=#0039b6 size=10>g</font><font face=times color=#30a72f size=10>l</font><font face=times color=#c41200 size=10>e</font>&nbsp;&nbsp;</b><td>&nbsp;</td></tr><tr><td bgcolor=#3366cc><font face=arial,sans-serif color=#ffffff><b>Error</b></td></tr><tr><td>&nbsp;</td></tr></table><blockquote><H1>Forbidden</H1>Your client does not have permission to get URL <code>/search?hl=de&amp;q=hans</code> from this server.  (Client IP address: 82.82.175.57)<br><br>
Please see Google's Terms of Service posted at http://www.google.com/terms_of_service.html
<BR><BR><P>If you believe that you have received this response in error, please <A HREF="http://www.google.com/support/bin/request.py?contact_type=user&hl=en">report</A> your problem. However, please make sure to take a look at our Terms of Service (http://www.google.com/terms_of_service.html). In your email, please send us the <b>entire</b> code displayed below.  Please also send us any information you may know about how you are performing your Google searches-- for example, "I'm using the Opera browser on Linux to do searches from home.  My Internet access is through a dial-up account I have with the FooCorp ISP." or "I'm using the Konqueror browser on Linux to search from my job at myFoo.com.  My machine's IP address is 10.20.30.40, but all of myFoo's web traffic goes through some kind of proxy server whose IP address is 10.11.12.13."  (If you don't know any information like this, that's OK.  But this kind of information can help us track down problems, so please tell us what you can.)</P><P>We will use all this information to diagnose the problem, and we'll hopefully have you back up and searching with Google again quickly!</P>
<P>Please note that although we read all the email we receive, we are not always able to send a personal response to each and every email.  So don't despair if you don't hear back from us!</P>
<P>Also note that if you do not send us the <b>entire</b> code below, <i>we will not be able to help you</i>.</P><P>Best wishes,<BR>The Google Team</BR></P><BLOCKQUOTE>/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/<BR>
Kh6eGevT4klDKQ7My7nCvCSU11J9hGIqA7iI_SuCOJXKbNyBM<BR>
Z4J119pexf2ClKyDVSgJHcByYqGooYm5pqCTibSX30xK68O7E<BR>
me8oCgua0RMTiovd1GJPAORASfzZethOSl1a-xHEcN9xBIE4x<BR>
IvY86JysAj6EMMK8L-KqGG1hetdpwV3Vyl_3SQlfPOYY_OlKV<BR>
OO3ucxlN6gGWWnEvBI5fI8Ln7ooJecSGLmK_0Qmf_EeDM8HkD<BR>
hUva3J0YbQVwJPsYEOwNEMSj5bzZlNcI9MY-Wi5kHt81cjoJX<BR>
6VAtvBn3BPDch-WD4p8mjsMyp4WxB7RlsrOicYUartO62Wzk1<BR>
BPVmck6q2XGTy8kERvsiUInWP5Io_B7Vl2a1UDgoDHFGXvSWN<BR>
yyTwF2AqwWvI0ibldvSQsRMU9kd8ttYYDW4A9CqwAM6oKJRFh<BR>
pjbF9aGXTDh3wCSAeVS_gukfCNcMcrlMtm7c9yQEbh2PsDPBO<BR>
GI0eRJ_UKaDpRFhpjbF9aGNNeeXBE6Js0JGkRXTC_ZyFmD31H<BR>
YTkLfdC2wP1LDjfB_beovzKJQsi5nY5e3GCW2fdAflGg3_E2s<BR>
kIjRftlYeBjiARM5zPIgx4SdWMYRyzY70sFj_PAJKG0W_dFjH<BR>
0R11_fFVwUEbCM9DIER-_HW3L7AgDLcqb2JDoqAN9wm9_Iazy<BR>
LZELxJHNOtMDx4eFwsaz532Aty223eUff0SgFHKpw50G_fOB_<BR>
t9U4Ko7Sp1djFObSWzpFy0GDY9C4E--8IvJRu5pmIlwVnSMyK<BR>
YJbGAbRlJoE=<BR>
+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+<BR></BLOCKQUOTE>

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
<p></blockquote><table width=100% cellpadding=0 cellspacing=0><tr><td bgcolor=#3366cc><img alt="" width=1 height=4></td></tr></table></body></html>

Spam bot
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.04.2008, 15:24

Er sagte ja schon, dass er sich den Quelltext in einer Textbox anzeigen lässt.
Dann muß er ja auch sehen können wonach er suchen will, bzw. ob das überhaupt angezeigt wird oder nicht.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 20.04.2008, 15:47

Hab das prob schon mal gelösst nur weis ich nicht wie ich das mit der schleife lösen soll?
 
DFJ_
Poster
Poster

Anmeldedatum: 15.10.2007
Beiträge: 156


Verfasst am: 20.04.2008, 15:49

ja lol er sollte lieber den webbrowser nehmen Smile
da ist dann auch kein schutz drin

http://www.vbarchiv.net/tipps/details.php?id=268

ich würde das so machen
aus dem kopf


Code:

dim pos(2) as long
dim quelltext as string
dim suchtext(2) as string
dim ausgabe as stirng

quelltext = "deineurl"
suchtext(0)  = "<div class=std>" ' ( musst du noch mal nach gucken heißt "<div class=std> nicht "<div class=""std"">" )
suchtext(1) = "</div> " ' das ist das ende von der div clase

pos(0) = instr(quelltext,suchtext(0))
pos(1) =instr(quelltextt.suchtext(1))

ausgabe = mid$(quelltext,pos(0),pos(1))

msgbox ausgabe








zeigt nun an von div classe bis </div
wenn du mehre classen darstellen willst mud du halt dann von postion von </div anfangen bis zur postion div classe und von div classe zu </div wieder anzeigenlassen Smile

jor
bitte so ungefähr frei aus den kopf
60 % das es funktionuert

gruß
DFJ
Spam bot
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.04.2008, 15:56

Einfach eine Schleife die so lange läuft bis die per InStr 0 (Null) zurückgegeben wird.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 20.04.2008, 17:50

DFJ hat Folgendes geschrieben:
ja lol er sollte lieber den webbrowser nehmen Smile
da ist dann auch kein schutz drin

http://www.vbarchiv.net/tipps/details.php?id=268

ich würde das so machen
aus dem kopf


Code:

dim pos(2) as long
dim quelltext as string
dim suchtext(2) as string
dim ausgabe as stirng

quelltext = "deineurl"
suchtext(0)  = "<div class=std>" ' ( musst du noch mal nach gucken heißt "<div class=std> nicht "<div class=""std"">" )
suchtext(1) = "</div> " ' das ist das ende von der div clase

pos(0) = instr(quelltext,suchtext(0))
pos(1) =instr(quelltextt.suchtext(1))

ausgabe = mid$(quelltext,pos(0),pos(1))

msgbox ausgabe








zeigt nun an von div classe bis </div
wenn du mehre classen darstellen willst mud du halt dann von postion von </div anfangen bis zur postion div classe und von div classe zu </div wieder anzeigenlassen Smile

jor
bitte so ungefähr frei aus den kopf
60 % das es funktionuert

gruß
DFJ


Hab ein paar fehler ausgebessert,aber es wird bei pos0 und pos1 trotzdem null ausgegeben.
Und wie soll ich das mit der schleife machen,es würde ja dann immer das selbe hinzüfugen^^
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.04.2008, 18:02

Du kannst bei InStr angeben, wo er anfangen soll zu suchen.
Also die Startposition.

InStr(Startposititon, string1, string2)

Einfach die zuletzt gefundene Position +1 angegben.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 20.04.2008, 19:37

Sry aber ich bekomm das mit der schleife nicht hin.
Kannst du mir plz ein bsp geben?
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.04.2008, 19:59

Code:

pos1 = 0
pos2 = 0
Do
 pos1 = InStr(pos1 + 1, Quelltext, StringAnfang)
 if pos1 <> 0 then
  pos2 = InStr(pos1+ 1, Quelltext, StringEnde)
  if pos2 <> 0 then
   'Mit Mid$ kopieren
   pos1 = pos2
  End if
 End if
loop Until pos1 = 0 or pos2 = 0


Das wäre eine Variante.
Müßte funktionieren, ist aber nicht getestet.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 20.04.2008, 20:14

das wird irgendwie ne endlos schleife Crying or Very sad
Kannst du mal plz testen?
 
The-God-of-all_
Poster
Poster

Anmeldedatum: 20.05.2007
Beiträge: 170
Wohnort: App.Path


Verfasst am: 20.04.2008, 20:49

Das liegt an der Abbruch bedingung, InStr gibt wenn es nichts findet nicht 0 sondern -1 zurück, also das = 0 in <0 umwandeln, dann sollte es gehen.
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.04.2008, 21:54

Keine Ahnung was du machst The-God-of-all, aber bei mir gibt die Funktion 0 zurück, falls nichts gefunden wurde.
Und so oft wie ich InStr bei meinen Projekten benutze, wäre mir was anderes schon tausendmal aufgefallen.


Hab die Schleife mal mit nem Quelltext von google mit der Suche "Haus" probiert und sie funktioniert ganz normal.
Also poste mal wie du sie eingebaut hast.


Edit//
http://www.vbarchiv.net/commands/cmd_instr.html

Edit2//
Code:
pos1 = 0
pos2 = 0
Do
 pos1 = InStr(pos1 + 1, Text1.Text, "<div class=std>")
 If pos1 <> 0 Then
  pos2 = InStr(pos1 + 1, Text1.Text, "<br>")
  If pos2 <> 0 Then
   pos1 = pos1 + 15
   MsgBox Mid$(Text1.Text, pos1, pos2 - pos1)
   pos1 = pos2
  End If
 End If
Loop Until pos1 = 0 Or pos2 = 0

Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 21.04.2008, 13:11

Sry aber kannst du mir das projekt mal uppen?

Hab jetzt einfach mal ein neues projekt erstellt,Quelltext ausgelesen und nen Button mit deinem code erstellt,aber es ged nicht Crying or Very sad
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 21.04.2008, 13:19


Mensch, das speicher ich doch nicht.

Ist doch nur die Sub o.O
Hab den Quelltext von google per Firefox besorgt und in eine Textbox gespeichert.

Also noch mehr kann und will ich echt nicht mehr machen.
Es steht dir jetzt alles zur Verfügung was du brauchst und wenn irgendwas nicht klappt, mußt du halt rausfinden woran es liegt!

Keine Ahnung wie du jetzt den Quelltext auslesen lässt, aber wahrscheinlich ist da iwie was anders, als wenn ich ihn einfach in FireFox kopiere.
Also such endlich mal nach möglichen Fehlern.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: beschreibungen auslesen, google

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Änderung im DataGridView wird nicht in Datenbank geschrieben 156 31.03.2012, 16:28
Keine neuen Beiträge Login geschrieben aber ... 312 19.08.2007, 18:54
Keine neuen Beiträge Mathe problem ;) bzw halt timer´s 631 02.06.2007, 22:10
Keine neuen Beiträge 2Tools Torrent/warez searchtool/Google ftp/unzensirte-bilder 803 11.03.2007, 18:54
Keine neuen Beiträge google suchmaschiene???? 533 01.02.2007, 02:33
 


[ Time: 0.0953s ][ Queries: 151 (0.0370s) ][ GZIP on - Debug on ]