Scraping web a una pagina .aspx con simple html dom

lordraven

Curioso
Verificación en dos pasos desactivada
Desde
3 Jul 2019
Mensajes
5
Crédito(s)
0
Puntos
13
Que tal este es mi segundo post con una tema nuevo voy ya varios dias intentando hacerlo y esta complicado la verdad no encuentro manera de extraer esta informacion.
el punto es que trabajo haciendo scraping web estoy ahora utilizando simple html dom por que me resulta muy practico pero recientemente encontre algunos puntos compicados como por ejemplo este que es el mas dificil una pagina con una lista hecha con .aspx donde esta lo complicado.... que la lista no la encuentra el buscador como suele hacerlo con simple html dom.
ahora paro a mostrar lo que explico para un mayor entendimiento:
1.png

como ven en la pagina hay una lista de inmuebles y la pagina tiene terminacion .aspx ahora cuando entro en inspeccionar la pagina esta ahi la lista pero cuando busco con el simple html dom no la encuentro... ahora bien cuando entro en ver codigo fuente no esta tampoco cuando hago un scraping general de la pagina osea bajar todo la pagina no esta tal informacion alguna sugerencia ayuda porfavor se agradeceria mucho...

para terminar lo q necesito extraer es la informacion de la lista de inmuebles ya que cada cuadro tiene un link q lleva a la vista detallada de cada inmueble una vez entras en la vista detallada ya se puede extraer la informacion ya hice ese trabajo lo que ahora estoy intentando hacer es obtener los links para asi poder hacer un trabajo mas dinamico ahora paso el codigo del scraping por pagina...
PHP:
<?php
   require 'simple_html_dom.php';

   $url = 'http://www.remax.bo/Terreno-En-Venta-Sacaba-Chapare_120020002-232?LFPNNSource=Search&cKey=120020002-232';

   $html = file_get_html($url);
   

   $posts = $html->find('div[class=listing-full mm-page mm-slideout]');


   foreach ($posts as $post) {


   	/**$link = $post->find('div a', 0);
	$a = $link->attr['href'];
	$title = $link->innertext;*/

	$titulo = $post->find('div[class=titlebar-listfull-h1] h1', 0);

	$precio = $post->find('div[class=key-price-div] a', 0);

	$zona = $post->find('div[class=key-data] div', 0);

	$telefono = $post->find('div[class=contact-popup-list] a', 2)->attr['href'];



	$link = $post->find('div img', 6);
	$img1 = $link->attr['src'];

	$link = $post->find('div img', 8);
	$img2 = $link->attr['src'];

	$link = $post->find('div img', 10);
	$img3 = $link->attr['src'];

	$link = $post->find('div img', 12);
	$img4 = $link->attr['src'];

	$link = $post->find('div img', 14);
	$img5 = $link->attr['src'];

	$link = $post->find('div img', 16);
	$img6 = $link->attr['src'];


	$sup_const = $post->find('div[class=attributes-data-row] div', 0);
	$sup = $post->find('div[class=attributes-data-row] div', 0);
	




	$coord = $post->find('div[class=googlemap-office] script', 1);


	preg_match('/var lat = (.*?);/', $coord, $lat_matches);
	preg_match('/var lng = (.*?);/', $coord, $lng_matches);
        
	//echo $lat_matches[1];
	//echo $lng_matches[1]; 
	








	echo "<table border='2'>";
	echo "<tr>";
	echo "<td>",$titulo,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$precio,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$zona,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$sup_const,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$sup,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$telefono,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$lng_matches[1],"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$lat_matches[1],"\n","</td>";
	echo "<tr>";
	echo "<td>",$img1,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$img2,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$img3,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$img4,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$img5,"\n","</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>",$img6,"\n","</td>";
	echo "</tr>";
	echo "</tr>";

	echo "</table>";


   }
?>
este es el codigo para extraer ahora bien tambien en base a este se puede obtener las lista pero no extrae nada como explique arriba no esta la lista..

aca les dejo el link de la pagina para que le den un vistaso:
Bolivia Bienes raices & Todos los tipos de propiedad Para alquiler y venta | RE/MAX Bolivia

aca les dejo el link de la pagina... agradeceria una ayuda algo en lo q no pense o pase por alto gracias...
 

Inmedia

VIP
Beta
Social Media
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
8 May 2019
Mensajes
65
Crédito(s)
0
Puntos
1
Dejame le doy un vistaso y te aviso
 

J0ss

Curioso
Verificación en dos pasos desactivada
Desde
29 Ago 2014
Mensajes
7
Crédito(s)
0
Puntos
4
Hola [MENTION=208040]lordraven[/MENTION] según veo la lista de inmuebles se carga a través de AJAX.

La url a la que se le hace la petición es esta: http://www.remax.bo/handlers/listinglist.ashx?mode=gallery&tt=261&cr=2&mpts=19426&pt=19426&cur=USD&sb=PriceDecreasing&page=1&sc=120&rl=2803&lsgeo=2803,0,0,0&sid=e1083e16-9f2d-4c67-bab4-45bdb9ec1b0a

Esta url devuelve un obejeto JSON que contiene los links de los inmuebles.



PHP:
<?php 
   require 'simple_html_dom.php'; 

    $url = 'http://www.remax.bo/handlers/listinglist.ashx?mode=gallery&tt=261&cr=2&mpts=19426&pt=19426&cur=USD&sb=PriceDecreasing&page=1&sc=120&rl=2803&lsgeo=2803,0,0,0&sid=e1083e16-9f2d-4c67-bab4-45bdb9ec1b0a';


    $opts=array('http'=>array('method'=>"GET",'header'=>"Accept-language: es\r\n"."Referer: http://www.remax.bo/PublicListingList.aspx?SelectedCountryID=120\r\n",'user_agent'=>'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28'));
    $context=stream_context_create($opts);

    $html=file_get_html($url,false,$context);

    $json = json_decode($html, true);

    preg_match_all('/<a onclick=\"InsertGoogleTagManagerEvent.*href =\"(.*)\" class=/', $json['llContentContainerHtml'], $matches);

    foreach ($matches[1] as $value) {
        echo("http://www.remax.bo".$value."<br>");
    } 



?>
 

lordraven

Curioso
Verificación en dos pasos desactivada
Desde
3 Jul 2019
Mensajes
5
Crédito(s)
0
Puntos
13
Super muchas gracias ya lo estoy probando junto con la otra parte del codigo me sirvio de mucho... una pregunta mas si no es mucha molestia como pudiste dar con la url de donde se hace la peticion... gracias....
 

Arriba