BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: [PHP] Spider per motori di ricerca Mer Ago 22, 2007 7:30 pm | |
| Eccovi il progetto di un mio spider in grado di riconoscere tutti i link in una pagina web (per ora mostra semplicemente il numero di link trovati su una pagina web, non ha ancora la funzionalità di indicizzazione in un database) fino a un livello di profondità arbitrario (in questo caso $steps= . Lo spider trova tutti i link in una pagina web, li riporta in output e a sua volta segue ognuno dei link trovati alla ricerca di altri link. get_links.php: - Codice:
-
<? function get_links($content,$url) { $found=array(); $l=0;
for ($i=0; $i<count($content); $i++) { $line=split(" ",$content[$i]);
for ($j=0; $j<count($line); $j++) { if (strstr($line[$j],"<a") && strstr($line[$j+1],"href=")) { $link=split('"',$line[$j+1]);
if (!strstr($link[1],"http://")) { $fields=split("/",$url); $root="http:/";
for ($k=2; $k<count($fields)-1; $k++) $root=$root."/".$fields[$k];
$link[1]=$root."/".$link[1]; }
$found[$l++]=$link[1]; } } }
return $found; } ?> find_link.php: - Codice:
-
<? include ('get_links.php');
$db_host='localhost'; $db_name='links'; $db_user='root'; $db_pass='blacklight';
if (($db=mysql_connect ($db_host,$db_user,$db_pass))==null) die ("<b>Unable to connect to database server $db_host</b>\n");
mysql_select_db ($db_name,$db) or die ("Unable to connect to database $db_name\n");
$STEPS=8; $url=$_POST["url"];
for ($k=0; $k<$STEPS; $k++) { print "<h1 align=center>Livello ".($k+1)."</h1>\n";
if ($k>0) { for ($i=0; $i<count($found[$k-1]); $i++) { $url=$found[$k-1][$i]; $fp=fopen($url,"r");
if ($fp==null) { print "<b>Error reading from $url</b>\n"; fclose($fp); } else { fclose($fp); $found[$k]=get_links(file($url),$url);
print "<h2>Links found inside $url:</h2>\n"; print "<ul>\n";
for ($j=0; $j<count($found[$k]); $j++) { $query = "insert into links(parent,link,num_links) ". "values('".$found[$k-1][$i]."','".$found[$k][$j]."',1)"; mysql_query ($query) or print "Invalid query: $query\n"; print '<li><a href="'.$found[$k][$j].'">'.$found[$k][$j]."</a></li>\n"; }
print "</ul>\n"; } } } else { $fp=fopen($url,"r");
if ($fp==null) die ("Error reading from $url\n"); fclose($fp);
$found[$k]=get_links(file($url),$url);
print "<h2>Links found inside $url:</h2>\n"; print "<ul>\n";
for ($i=0; $i<count($found[$k]); $i++) { $query = "insert into links(parent,link,num_links) ". "values('$url','".$found[$k][$i]."',1)"; mysql_query ($query) or print "Invalid query: $query\n"; print '<li><a href="'.$found[$k][$i].'">'.$found[$k][$i]."</a></li>\n"; }
print "</ul>"; } } ?> | |
|
Ospite Ospite
| Titolo: Re: [PHP] Spider per motori di ricerca Mer Ago 22, 2007 9:26 pm | |
| non male ...... |
|
darkjoker Admin
Numero di messaggi : 813 Data d'iscrizione : 30.07.07
| Titolo: Re: [PHP] Spider per motori di ricerca Gio Ago 23, 2007 7:46 pm | |
| molto, molto molto bene. pero vai un po piano con sti tutorial che senno non riesco a fare i complimenti per ciascuno... bravissimo blacklight!!! | |
|
Contenuto sponsorizzato
| Titolo: Re: [PHP] Spider per motori di ricerca | |
| |
|