PHP - Ayuda en la extracción de datos de una página web

 
Vista:

Ayuda en la extracción de datos de una página web

Publicado por Diego del Olmo (1 intervención) el 02/07/2018 23:54:01
Hola, mi objetivo es sacar de esta pagina https://subastas.boe.es todas las subastas que hayan y entrar a cada una de ellas y buscar en cada una, por ejemplo, el identificador, o el precio.
Mi código es este, uso las librerias de simple_html_dom https://github.com/samacs/simple_html_dom

index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
	function find() {
		$data = new data();
		$html = $data->html();
		foreach($html->find("div[class=enlacesMas]") as $subasta) {
			$web = new simple_html_dom();
			$web->load_file($subasta);
			$identifier = $web->find("tr", 0)->find("td", 0);
			return $identifier;
		}
	}
 
	echo find();
 
?>

Lo que hace $identifier:

// Find first <li> in first <ul>
$e = $html->find('ul', 0)->find('li', 0);

data.php
1
2
3
4
5
6
7
8
9
10
11
<?php
 
	$url = "https://subastas.boe.es/subastas_ava.php?campo%5B0%5D=SUBASTA.ORIGEN&dato%5B0%5D=&campo%5B1%5D=SUBASTA.ESTADO&dato%5B1%5D=PC&campo%5B2%5D=BIEN.TIPO&dato%5B2%5D=&campo%5B4%5D=BIEN.DIRECCION&dato%5B4%5D=&campo%5B5%5D=BIEN.CODPOSTAL&dato%5B5%5D=&campo%5B6%5D=BIEN.LOCALIDAD&dato%5B6%5D=&campo%5B7%5D=BIEN.COD_PROVINCIA&dato%5B7%5D=&campo%5B8%5D=SUBASTA.POSTURA_MINIMA_MINIMA_LOTES&dato%5B8%5D=&campo%5B9%5D=SUBASTA.NUM_CUENTA_EXPEDIENTE_1&dato%5B9%5D=&campo%5B10%5D=SUBASTA.NUM_CUENTA_EXPEDIENTE_2&dato%5B10%5D=&campo%5B11%5D=SUBASTA.NUM_CUENTA_EXPEDIENTE_3&dato%5B11%5D=&campo%5B12%5D=SUBASTA.NUM_CUENTA_EXPEDIENTE_4&dato%5B12%5D=&campo%5B13%5D=SUBASTA.NUM_CUENTA_EXPEDIENTE_5&dato%5B13%5D=&campo%5B14%5D=SUBASTA.ID_SUBASTA_BUSCAR&dato%5B14%5D=&campo%5B15%5D=SUBASTA.FECHA_FIN_YMD&dato%5B15%5D%5B0%5D=&dato%5B15%5D%5B1%5D=&campo%5B16%5D=SUBASTA.FECHA_INICIO_YMD&dato%5B16%5D%5B0%5D=&dato%5B16%5D%5B1%5D=&page_hits=40&sort_field%5B0%5D=SUBASTA.FECHA_FIN_YMD&sort_order%5B0%5D=desc&sort_field%5B1%5D=SUBASTA.FECHA_FIN_YMD&sort_order%5B1%5D=asc&sort_field%5B2%5D=SUBASTA.HORA_FIN&sort_order%5B2%5D=asc&accion=Buscar";
 
	function html() {
		$html = new simple_html_dom();
		$html->load_file($url);
		return $html;
	}
 
?>

Espero que alguien pueda ayudarme, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de santi
Val: 588
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda en la extracción de datos de una página web

Publicado por santi (204 intervenciones) el 06/07/2018 02:20:41
Hola,

¿Es una web oficial del estado? En este caso creo que lo tienes complicado..

No veo más opciones para acceder a los datos de forma fácil como "simple html dom parse" (que ya utilizas) para acceder a esos datos..

Tienes que saber que hay una política para no poder acceder a datos de webs externas como son "html dom parser" o "html2canvas" por ejemplo.

Estas páginas están capadas para este tipo de scripts, pero si no es tu error, dinos que te muestra y miramos de arreglarlo ok? ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar