|
| Autor |
Nachricht |
august_ 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

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

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 »

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 (=>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
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.
Genau genug erklärt?  |
|
| |
|
 |
august_ 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

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

Anmeldedatum: 04.08.2007 Beiträge: 181
|
Verfasst am: 20.04.2008, 12:46 |
|
|
| Hab ihn ja zuerst in ne textbox geladen |
|
| |
|
 |
ZiG_ Ü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

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

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 20.04.2008, 15:08 |
|
|
Denkst du die InStr Funktion ist fehlerhaft?
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

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> </b><td> </td></tr><tr><td bgcolor=#3366cc><font face=arial,sans-serif color=#ffffff><b>Error</b></td></tr><tr><td> </td></tr></table><blockquote><H1>Forbidden</H1>Your client does not have permission to get URL <code>/search?hl=de&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

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

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

Anmeldedatum: 15.10.2007 Beiträge: 156
|
Verfasst am: 20.04.2008, 15:49 |
|
|
ja lol er sollte lieber den webbrowser nehmen
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
jor
bitte so ungefähr frei aus den kopf
60 % das es funktionuert
gruß
DFJ Spam bot |
|
| |
|
 |
ZiG_ Ü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

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
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
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

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

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

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

Anmeldedatum: 04.08.2007 Beiträge: 181
|
Verfasst am: 20.04.2008, 20:14 |
|
|
das wird irgendwie ne endlos schleife
Kannst du mal plz testen? |
|
| |
|
 |
The-God-of-all_ 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

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

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  |
|
| |
|
 |
ZiG_ Ü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) |
|
| |
|
 |