Copiar contenido buscando por la url amigables

  • Autor Autor iniciopublic
  • Fecha de inicio Fecha de inicio
iniciopublic

iniciopublic

Préstamo impago
1
Ómicron
Verificación en dos pasos activada
Suscripción a IA
Hola a todos , estoy tratando de hacer un pequeño programa para copiar contenido de otras web

pero tengo una duda con respecto a copiar en varias paginas con un for

Como podría copiar o rastrear cierta cantidad paginas si tienen url amigables y no numérico por ejemplo :
HTML:
http://www.pagina.net/?p=34
HTML:
http://www.pagina.net/pelicula-adultos2


este es el código que tengo
PHP:
<?php

for($pagina=50;$pagina<60;$pagina++){

$data = file_get_contents("http://www.pagina.net/?p=".$pagina);

 if ( preg_match('|<h2 class="titulo">(.*?)</h2>|is' , $data , $cap ) )
{
    
    echo '<br><b>'.$cap[1] .'</b>';
}

}
?>



Le agradezco sus pronta respuesta


Saludos
 
Última edición:
creo que puedes savar de la URL principal del blog segu enlaces y paginas
 
mira las url no amigables paresen las de un blog, puedes hacer un bot a la pagina principal del blog, opteniendo todas las url de cada post, despues de eso coger todos los datos del post como desees
 
Que obtengas las url desde la página principal del blog.

Como ? :topsy_turvy: , plisss

con ese codigo solo podría obtener la primera url de la pagina , ¿como podría obtener varias?
 
Última edición:
Como ? :topsy_turvy: , plisss

depende de la estructura HTML del blog, lo puedes hacer con curl :encouragement:

Un ejemplo, un blog tiene la siguiente estructura HTML:

HTML:
<article id="post-1"><a href="http://blog.com/entrada/"><h2>Titulo post</h2></a><div class="thumb"><img src="/thumb.jpg"></div><p>Lorem  ipsum dolor sit.....</p></article>

Lo que haríamos con php sería ver cuantas veces se encuentra <article id="post-1"> en la página principal, sabiendo cuantas veces hay hacemos el ciclo for, pero ya tenemos que tener el source de la página, eso es lo qjue hacemos con curl:

PHP:
<?php
function curl($url){
	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	$page = curl_exec($ch);
	curl_close($ch);
	return $page;
}
$page = curl('http://blog.com');
$entradas = preg_match(/<article id="post-([0-9-]+)">(.*)<\/article>/, $page, $match);
for($i = 0; $i < count($match); $i++) {
preg_match(/<a href="(.*)"><h2>(.*)<\/h2><\/a>/, $match[$i], $urls);
$url .= $urls[1].'<br />';
}
echo $url;
?>

Según yo eso funcionaría :distant:
 
Tenkiu !! lo probare


depende de la estructura HTML del blog, lo puedes hacer con curl :encouragement:

Un ejemplo, un blog tiene la siguiente estructura HTML:

HTML:
<article id="post-1"><a rel="nofollow" href="http://blog.com/entrada/"><h2>Titulo post</h2></a><div class="thumb"><img src="/thumb.jpg"></div><p>Lorem  ipsum dolor sit.....</p></article>

Lo que haríamos con php sería ver cuantas veces se encuentra <article id="post-1"> en la página principal, sabiendo cuantas veces hay hacemos el ciclo for, pero ya tenemos que tener el source de la página, eso es lo qjue hacemos con curl:

PHP:
<?php
function curl($url){
	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	$page = curl_exec($ch);
	curl_close($ch);
	return $page;
}
$page = curl('http://blog.com');
$entradas = preg_match(/<article id="post-([0-9-]+)">(.*)<\/article>/, $page, $match);
for($i = 0; $i < count($match); $i++) {
preg_match(/<a href="(.*)"><h2>(.*)<\/h2><\/a>/, $match[$i], $urls);
$url .= $urls[1].'<br />';
}
echo $url;
?>

Según yo eso funcionaría :distant:
 
Atrás
Arriba