Ayuda crear robot extractor de pelis

djfumon Seguir

Zeta
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
14 Mar 2011
Mensajes
1.948
Hola buenas,

alguien puede ayudarme para empezar a crear un robot que extraer datos de una web, seria una web de pelis.

saludos y gracias.
 

Makoto Yuki

Gamma
Programador
Desde
12 May 2013
Mensajes
481
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
cURL + PHP + Cronjob para automatizarlo
Eso es lo que ocupas,

Con cURL especificas la web a extraer y las variables desde donde tomara los valores que quieres,
Con el php ya sabes haces la inserccion y cronjob lo automatizas para que lo haga automatico el copiar todo contenido,

Aqui te dejo un ejemplo de mi bot de porno

PHP:
<?php
function web_grap_page($url) {
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_VERBOSE, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.17) Gecko/20110121 AskTbVD/3.9.1.14019 Firefox/3.5.17");
	$output = curl_exec($curl);
    // Check for errors
    if (curl_errno($curl)) {
        trigger_error('CURL error: "' . curl_error($curl) . '"', E_USER_WARNING);
        $output = false;
    }
    curl_close($curl);
    return $output;
}

if (!isset($_GET['page'])) {$pagActual='';} else {$pagActual='?page='.$_GET['page'];}

$url='http://www.redtube.com/'.$pagActual;
$pagina=web_grap_page($url);

$videoshtml=explode('<div class="videosTable">',$pagina);
$videoshtml=$videoshtml[1];
$videoshtml=explode('<div class="footer">',$videoshtml);
$videoshtml=$videoshtml[0];

//echo $pagina;

$paginador=explode('<div class="pageNumbersHolder">',$pagina);
$paginador=explode('</div>',$paginador[1]);
$paginador=$paginador[0];
$paginador=str_replace('http://www.redtube.com/',$urlpath,$paginador);
$paginador=str_replace('?page','?page',$paginador);

$paginador=str_replace('Previous','Anterior',$paginador);
$paginador=str_replace('Next','Siguiente',$paginador);

$paginador=str_replace('Next','Siguiente',$paginador);

$paginador='<div class="pages"><div class="pageNumbersHolder">'.$paginador.'</div></div>';
//die($paginador);
?>
			<h2 class="tit">Videos Porno Gratis - Videos Recientes de RedTube</h2>
<div align="center" style="padding-left:40px;">
<?php
$videos=explode('<div class="video">',$videoshtml);

for($i=1;$i<count($videos);$i++){
	$id=explode('<a href="/',$videos[$i]);
	$id=explode('" title="',$id[1]);
	$id=$id[0];

	$name=explode('class="s">',$videos[$i]);
	$name=explode('</a>',$name[1]);
	$name=trim($name[0]);

	$time=explode('<span class="d">',$videos[$i]);
	$time=explode('</span>',$time[1]);
	$time=trim($time[0]);
	
	$preview=explode('class="t" src="',$videos[$i]);
	$preview=explode('"',$preview[1]);
	$preview=trim($preview[0]);
	
	$timeadded=explode('<div class="lastMovieRow">',$videos[$i]);
	$timeadded=explode('<div style="float:left;">',$timeadded[1]);
	$timeadded=explode('</div>',$timeadded[1]);
	$timeadded=trim($timeadded[0]);
	$timeadded=str_replace('min ago','minutos',$timeadded);
	$timeadded=str_replace('hours ago','horas',$timeadded);
	$timeadded=str_replace('hour ago','hora',$timeadded);
	if(CheckString('minutos',$timeadded) or CheckString('hora',$timeadded)){$timeadded='Agregado hace '.$timeadded;}else{$timeadded=str_replace('view','veces vista',$timeadded);}
	

	
?>
<div class="reciente_box"><a href="<?=$urlpath?>redtube/<?=$id?>"><h3 class="titulo"><?=$name?></h3><img src="<?=$preview?>" alt="<?=$name?>"/></a><p class="desc">Duraci&oacute;n: <?=$time?> minutos<br> <?=$timeadded?><br></p><br class="clear" /></div>
<?php
	/*echo 'Id: '.$id.'<br>';
	echo 'Name: '.$name.'<br>';
	echo 'Time: '.$time.'<br>';
	echo 'Preview: '.$preview.'<br>';
	
	
	echo '<br>';*/
}
?></div>
<?=$paginador?>
<div class="clear"></div>

Como yo no hice DB no puse inserccion pero ya con esa base puedes darte una idea y adaptarlo a pelicula y meterlo tambien a DB xD
 

djfumon

Zeta
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
14 Mar 2011
Mensajes
1.948
cURL + PHP + Cronjob para automatizarlo
Eso es lo que ocupas,

Con cURL especificas la web a extraer y las variables desde donde tomara los valores que quieres,
Con el php ya sabes haces la inserccion y cronjob lo automatizas para que lo haga automatico el copiar todo contenido,

Aqui te dejo un ejemplo de mi bot de porno

PHP:
<?php
function web_grap_page($url) {
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_VERBOSE, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.17) Gecko/20110121 AskTbVD/3.9.1.14019 Firefox/3.5.17");
	$output = curl_exec($curl);
    // Check for errors
    if (curl_errno($curl)) {
        trigger_error('CURL error: "' . curl_error($curl) . '"', E_USER_WARNING);
        $output = false;
    }
    curl_close($curl);
    return $output;
}

if (!isset($_GET['page'])) {$pagActual='';} else {$pagActual='?page='.$_GET['page'];}

$url='http://www.redtube.com/'.$pagActual;
$pagina=web_grap_page($url);

$videoshtml=explode('<div class="videosTable">',$pagina);
$videoshtml=$videoshtml[1];
$videoshtml=explode('<div class="footer">',$videoshtml);
$videoshtml=$videoshtml[0];

//echo $pagina;

$paginador=explode('<div class="pageNumbersHolder">',$pagina);
$paginador=explode('</div>',$paginador[1]);
$paginador=$paginador[0];
$paginador=str_replace('http://www.redtube.com/',$urlpath,$paginador);
$paginador=str_replace('?page','?page',$paginador);

$paginador=str_replace('Previous','Anterior',$paginador);
$paginador=str_replace('Next','Siguiente',$paginador);

$paginador=str_replace('Next','Siguiente',$paginador);

$paginador='<div class="pages"><div class="pageNumbersHolder">'.$paginador.'</div></div>';
//die($paginador);
?>
			<h2 class="tit">Videos Porno Gratis - Videos Recientes de RedTube</h2>
<div align="center" style="padding-left:40px;">
<?php
$videos=explode('<div class="video">',$videoshtml);

for($i=1;$i<count($videos);$i++){
	$id=explode('<a href="/',$videos[$i]);
	$id=explode('" title="',$id[1]);
	$id=$id[0];

	$name=explode('class="s">',$videos[$i]);
	$name=explode('</a>',$name[1]);
	$name=trim($name[0]);

	$time=explode('<span class="d">',$videos[$i]);
	$time=explode('</span>',$time[1]);
	$time=trim($time[0]);
	
	$preview=explode('class="t" src="',$videos[$i]);
	$preview=explode('"',$preview[1]);
	$preview=trim($preview[0]);
	
	$timeadded=explode('<div class="lastMovieRow">',$videos[$i]);
	$timeadded=explode('<div style="float:left;">',$timeadded[1]);
	$timeadded=explode('</div>',$timeadded[1]);
	$timeadded=trim($timeadded[0]);
	$timeadded=str_replace('min ago','minutos',$timeadded);
	$timeadded=str_replace('hours ago','horas',$timeadded);
	$timeadded=str_replace('hour ago','hora',$timeadded);
	if(CheckString('minutos',$timeadded) or CheckString('hora',$timeadded)){$timeadded='Agregado hace '.$timeadded;}else{$timeadded=str_replace('view','veces vista',$timeadded);}
	

	
?>
<div class="reciente_box"><a href="<?=$urlpath?>redtube/<?=$id?>"><h3 class="titulo"><?=$name?></h3><img src="<?=$preview?>" alt="<?=$name?>"/></a><p class="desc">Duración: <?=$time?> minutos<br> <?=$timeadded?><br></p><br class="clear" /></div>
<?php
	/*echo 'Id: '.$id.'<br>';
	echo 'Name: '.$name.'<br>';
	echo 'Time: '.$time.'<br>';
	echo 'Preview: '.$preview.'<br>';
	
	
	echo '<br>';*/
}
?></div>
<?=$paginador?>
<div class="clear"></div>

Como yo no hice DB no puse inserccion pero ya con esa base puedes darte una idea y adaptarlo a pelicula y meterlo tambien a DB xD
muchas gracias por tu ayuda, pero he creado un .php con el codigo que me distes y al acceder solo aparece esto:

Videos Porno Gratis - Videos Recientes de RedTube

no deberian aparecer contenid?
 

Makoto Yuki

Gamma
Programador
Desde
12 May 2013
Mensajes
481
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
muchas gracias por tu ayuda, pero he creado un .php con el codigo que me distes y al acceder solo aparece esto:

Videos Porno Gratis - Videos Recientes de RedTube

no deberian aparecer contenid?

No exactamente pues le falta algunas cosas,
Te envio MP con link para que veas como queda el script completo,
Como te dije es un ejemplo eso sin embargo no esta completo ya que llamo a otros directorios tambien :p8:
 

djfumon

Zeta
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
14 Mar 2011
Mensajes
1.948
No exactamente pues le falta algunas cosas,
Te envio MP con link para que veas como queda el script completo,
Como te dije es un ejemplo eso sin embargo no esta completo ya que llamo a otros directorios tambien :p8:

ok gracias muy amable ;) te he agregado al facebook
 

Zentido

Iota
Programador
Verificación en dos pasos activada
Desde
17 Jul 2012
Mensajes
2.253
Pues ocupas las siguientes funciones y librerias.

Librerias:
Curl.

Funciones:
file_get_contents()
explode()
preg_match_all()
preg_match()
preg_replace_callback()
preg_replace()
str_replace
ucwords
strtolower

bucles: for,foreach
condicional: if

Cosas basicas de programación. no requiere tanta chancadera de cabeza como se piensa.
 
Arriba