Google-Ergebnisse auslesen und anzeigen

Hallo liebe CommZ!

Heute geht es um unser aller Freund "Onkel Google".

Ich hab ein kleines Problem mit ihm ;)

Ich generiere über ein Script eine Anfrage und lasse google suchen.
Bisher öffne ich dabei per Javascript eine neue Seite (PopUp) aber das soll bald ein Ende haben (wegen der Benutzerfreundlichkeit).

Ich möchte jetzt das die Googleergebnisse, also "nur" die Links die Google gefunden (inkl. der nächsten 10 Seiten) hat auslesen und in meiner Datei ausweisen.
Nun habe ich noch einige Code-Schnipsel aus einem anderen Script, welches mit Preg_match_all mir alle Links von del.icio.us suchergebnissen ausgelesen hat (erfolgreich).

Wenn ich dieses nun anwende, bekomme ich leider aber keine "richtigen" Ergebnisse mehr.


Der Suchcode:

PHP:
<?php

							   	
							   	$neu_link = "http://www.google.com/search?hl=en&q=%22pink%22+intitle%3A%22index.of%22+%22parent+directory%22+%22size%22+%22last+modified%22+%22description%22+%5Bsnd%5D+%28wma%7Cmp3%7Cogg%29+-inurl%3A%28asp%7Cjsp%7Cphp%7Chtml%7Chtm%7Ccf%7Cshtml%29+-site%3Awww.shexy.nl+-site%3Afettrap.com+-site%3Amusik.am";
									$seite = file_get_contents($neu_link);
									
									  	
									  
									preg_match_all('/<a href="([^<])*<\/a>/', $seite, $result, PREG_PATTERN_ORDER);
									$result = $result[0];

					print_r($result);
				
?>

eingebunden auf: www.ihelpu.eu/sites.like/delicio.php

Wenn Ihr den Link besucht sehr Ihr:
Er gibt mir alle, bis auf die Ergebniss Links aus, obwohl diese ebenfalls mit '<a href=' anfangen und auf '</a>' selbstverständlich enden.

Weiß jemand wieso?
Hat vll. eine Lösung parat oder ein Beispiel?

Vielen Dank für jede Hilfe & Grüße aus dem Norden

teekay

edit: ups ^^
so, da ist er.
 
dein suchcode ist nur ne variablenzuweisung, du müsstest schonmal den ganzen code posten, damit wir dir weiterhelfen können ;)
 
Die Links bei den Ergebnissen sehen wie folgt aus:

Code:
<a href="http://www.muh.de/" class=l><em>MUH</em> - <em>Milch-Union Hocheifel</em> eG - Pronsfeld</a>

Der Regex sollte also ein wenig angepasst werden ;)
 
In der Tat, dein regulärer Ausdruck sollte noch etwas verbessert werden.
Da aber google die reinen Ergebnis-Links immer in einem <h3> geschachtelt hat, kriegst du URL und Linknamen von einer google Suche ganz leicht:
PHP:
<?php

$neu_link = "http://www.google.com/search?hl=en&q=%22pink%22+intitle%3A%22index.of%22+%22parent+directory%22+%22size%22+%22last+modified%22+%22description%22+%5Bsnd%5D+%28wma%7Cmp3%7Cogg%29+-inurl%3A%28asp%7Cjsp%7Cphp%7Chtml%7Chtm%7Ccf%7Cshtml%29+-site%3Awww.shexy.nl+-site%3Afettrap.com+-site%3Amusik.am";
$seite = file_get_contents($neu_link);

preg_match_all('/<h3[^>]*><a[^>]+href="([^"]*)"[^>]*>(.+?)<\/a>/', $seite, $result, PREG_SET_ORDER); // RegExp angepasst. Beachte die Ergebnisstruktur (PREG_SET_ORDER)!

$resulthtml = array(); // Stelle das Ergebnis etwas schöner dar (als Verlinkte Aufzählung)
foreach ($result as $r) {
$resulthtml[] = array('url' => htmlentities($r[1]), 'linktext' => '<a href="' . htmlentities($r[1]) . '">' . $r[2] . '</a>');
}
echo '<pre>';
print_r($resulthtml);
echo '</pre>';

// Wenn du nur die Liste mit URLs und Linknamen willst, kannst du auch einfach folgendes machen:
$resultlist = array();
foreach ($result as $r) {
$resultlist[] = array('url' => $r[1], 'linktext' => $r[2] );
}
// $resultlist ist jetzt ein Array von Arrays, das du z.B. so zugreifen kannst:
// $linkurl = $resultlist[13]['url'];
// $linktext = $resultlist[13]['linktext'];

?>

mfg, metax.

~edit:
Wenn du mehr als 10 Ergebnisse haben willst, kannst du dem Google-Query einfach den Parameter "&num=50" anhängen (um z.B: 50 Ergebnisse zu kriegen ...)

~edit2:
Du kannst es dir auch noch leichter machen, und die Google-API benutzen.
Brauchst aber einen API-Key dafür.
http://blogoscoped.com/archive/2003_06_22_index.html
 
Hi,

Danke für die fixen Antworten.
Habe den Code angepasst für die Ausgabe und ausprobiert aber ich bekomme keine Ergebnisse.
Nach etwas probieren tippe ich nun darauf das der Regex-Befehl fehlerhaft ist.
Hast du den Code selbst mal ausprobiert?

mfg,

teekay
 
Sooo, es geht nun bei mir auch, es lag an dem Link.
Im Browser ausgeführt ist er ok, so nicht.

Vielen Dank nochmal für deine Hilfe :)!

Einen schönen Abend wünsch ich noch,

mfg,

teekay
 
Zurück
Oben