una scraping pagina obtener leer informacion hacer extraer datos con como php html xpath web-scraping domdocument

php - pagina - scraping web



Php cURL Web Scraping (1)

Primero, olvidaste crear una instancia de la clase DOMDocument , (al menos en el código que tienes en esta pregunta).

$curl = curl_init(''http://www.flipkart.com/apple-iphone-5s/p/itmdv6f75dyxhmt4?pid=MOBDPPZZDX8WSPAT''); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl,CURLOPT_USERAGENT,''Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13''); $page = curl_exec($curl); if(!empty($curl)){ //if any html is actually returned $pokemon_doc = new DOMDocument; libxml_use_internal_errors(true); $pokemon_doc->loadHTML($page); libxml_clear_errors(); //remove errors for yucky html $pokemon_xpath = new DOMXPath($pokemon_doc); $price = $pokemon_xpath->evaluate(''string(//div[@class="prices"]/meta[@itemprop="price"]/@content)''); echo $price; $rupees = $pokemon_xpath->evaluate(''string(//div[@class="prices"]/div/span)''); echo $rupees; } else { print "Not found"; }

Muestra de salida

Quiero raspar el precio del teléfono móvil desde la URL del sitio web: http://www.flipkart.com/apple-iphone-5s/p/itmdv6f75dyxhmt4?pid=MOBDPPZZDX8WSPAT

Si ve el código, el precio se coloca en el siguiente SPAN

<div class="pricing line"> <div class="prices" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer"> <div> <span class="selling-price omniture-field" data-omnifield="eVar48" data-eVar48="37500">Rs. 37,500</span> // Fetch this price </div> <span class="sticky-message">Selling Price</span> <meta itemprop="price" content="37,500"> <meta itemprop="priceCurrency" content="INR"> </div> </div>

Mi código para obtener esto hasta ahora es:

<?php $curl = curl_init(''http://www.flipkart.com/apple-iphone-5s/p/itmdv6f75dyxhmt4?pid=MOBDPPZZDX8WSPAT''); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $page = curl_exec($curl); if(!empty($curl)){ //if any html is actually returned $pokemon_doc->loadHTML($curl); libxml_clear_errors(); //remove errors for yucky html $pokemon_xpath = new DOMXPath($pokemon_doc); //get all the h2''s with an id $pokemon_row = $pokemon_xpath->query(''//h2[@id]''); if($pokemon_row->length > 0){ foreach($pokemon_row as $row){ echo $row->nodeValue . "<br/>"; } } } else print "Not found"; ?>

Esto muestra un error:

Error fatal: llamada a una función miembro loadHTML () en un no objeto en D: / xampp / htdocs / jiteen / php-scrape / phpScrape.php en la línea 9

¿Qué debo hacer? No puedo rastrear el error