Código PHP:
Ver original<?php
if(!$server_link) {
}
if(!$db_selected) {
}
function storeLink($titulo,$descripcion,$url,$keywords, $prof)
{
$query = "INSERT INTO spider (webTitulo, webDescripcion, weburl, webkeywords, prof) VALUES ('$titulo', '$descripcion', '$url', '$keywords', $prof)";
}
function extraer($url, $prof, $patron)
{
$userAgent = 'Interredu';
// La salvo de Entrada, para que no se me corra en la entrada a la base de datos
saveUrl($url, $prof,$patron, $html);
// Mando error pero no corto porque si una url esta mal formada termina con la
// ejecucion
if (!$html) {
}
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$url2 = $href->getAttribute('href');
$var = strstr($url2, '#', true); if ($var !== false ) {
$url2 = $var;
}
// Me aseguro que este bajo nuestro sitio.
if (strpos($url2, $patron) === false) { continue;
}
// Me aseguro que ya no este ingresada, para no iterar sobre ella misam
if ($url2 != $url && $url2 != '') {
// Se podria agregar un campo timestap para luego reescanera paginas
// que tuvieran una fecha menor.
// URL Unica para que falle y como es mysql poner INSERT INTO ...... ON DUPLICATE KEY ... en la funcion de guardado
$busqueda = mysql_query("SELECT weburl FROM spider WHERE weburl='$url2'"); if ($prof <= 5 && $cantidad == 0) {
extraer($url2, $prof++, $patron);
}
}
}
}
function saveUrl($url, $prof, $patron, $html)
{
$retorno = false;
if( $prof >= 1) {
preg_match_all ("(<meta name=\"description\" content=\"(.*)\"\/>)siU", $html, $description); preg_match_all ("(<meta name=\"keywords\" content=\"(.*)\"\/>)siU", $html, $keys); $titulo = $title[1][0];
$descripcion = $description[1][0];
$keywords = $keys[1][0];
storeLink($titulo,$descripcion,$url,$keywords, $prof);
$retorno = true;
echo 'Guardada pagina : ' . $url . ' con profundidad ' . $prof . '<br>' . "\n\r";
}
return $retorno;
}
$url = "http://objetivophp.com";
$patron = "http://objetivophp.com";
$prof = 5;
extraer($url, 1, $patron);