Pregunta:
¿Programas?Scripts? Que se usa para recojer datos??
2008-08-14 18:09:29 UTC
pues mi problema es que quiero un programa o script que me recoja datos de una pagina web(por ejemplo, todos los caracteres en negrita) y los ponga en una base de datos, eso se hace con un script? o con un programa? me podrian decir con cual?
Tres respuestas:
deivisjoro
2008-08-14 20:31:48 UTC
puedes hacerlo con php:



creas un script que lance algunas peticiones o abra algunas conexiones por soket, pida una pagina y te devuelva el contenido



function getFileContents($url) {

global $user_agent;

$urlparts = parse_url($url);

$path = $urlparts['path'];

$host = $urlparts['host'];

if ($urlparts['query'] != "")

$path .= "?".$urlparts['query'];

if (isset ($urlparts['port'])) {

$port = (int) $urlparts['port'];

} else

if ($urlparts['scheme'] == "http") {

$port = 80;

} else

if ($urlparts['scheme'] == "https") {

$port = 443;

}



if ($port == 80) {

$portq = "";

} else {

$portq = ":$port";

}



$all = "*/*";



$request = "GET $path HTTP/1.0\r\nHost: $host$portq\r\nAccept: $all\r\nAccept-Encoding: identity\r\nUser-Agent: $user_agent\r\n\r\n";



$fsocket_timeout = 30;

if (substr($url, 0, 5) == "https") {

$target = "ssl://".$host;

} else {

$target = $host;

}





$errno = 0;

$errstr = "";

$fp = @ fsockopen($target, $port, $errno, $errstr, $fsocket_timeout);



if (!$fp) {

$contents['state'] = "NOHOST";

printConnectErrorReport($errstr);

return $contents;

} else {

if (!fputs($fp, $request)) {

$contents['state'] = "Cannot send request";

return $contents;

}

$data = null;

socket_set_timeout($fp, $fsocket_timeout);

$status = socket_get_status($fp);

while (!feof($fp) && !$status['timed_out']) {

$data .= fgets($fp, 8192);

}

fclose($fp);

if ($status['timed_out'] == 1) {

$contents['state'] = "timeout";

} else

$contents['state'] = "ok";

$contents['file'] = substr($data, strpos($data, "\r\n\r\n") + 4);

}

return $contents;

}







luego que tengas el contenido puedes manejarlo con el dom del documento por ejemplo



getElementByTagName("b");//traer lo que esta en negrilla
what
2008-08-15 01:18:17 UTC
pues tendria que leer el codigo encerrado por las etiquetas y si es que esta en html (no se podria si esta maquetada con CSS), podrias pogramarlo en PHP y usar archivos .txt para gardar las cadenas o la base de datos en MySQL.



pero hasta ahorita no se de algun script que haga lo que quieras. saludos
Andres L.
2008-08-15 01:12:04 UTC
me ayudan con mi pregunta ?

https://answersrip.com/question/index?qid=20080814175021AA8nEEv


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...