Me estoy peleando con la extensión DOM para sacar datos de otra web y utilizarlos.
En concreto, trato de sacar el valor de diferentes monedas de oro de esta web:
http://www.orodirect.es/productos/3/monedas_de_metales_preciosos.html
Lo he conseguido básicamente con la clase DOMXPath, el código es este:
Código:
Con este código obtengo el siguiente resultado:<?php $link = 'http://www.orodirect.es/productos/3/monedas_de_metales_preciosos.html'; $dom = new DOMDocument; $dom->loadHTMLFile($link); $i = 0; $html = ''; $domxpath = new DOMXPath($dom); $newDom = new DOMDocument; $newDom->formatOutput = true; $filtered = $domxpath->query('//div[@class="title"] | //div[@class="price"] '); while( $myItem = $filtered->item($i++) ){ $node = $newDom->importNode( $myItem, true ); $newDom->appendChild($node); } $html = $newDom->saveHTML(); echo $html; ?>
Maple Leaf Platino 1 oz
1.262 €
Filarmónica de Viena Oro 1 oz
1.060 €
Kruger Rand 1 oz
1.040 €
Australian Nugget 1 oz
1.060 €
El problema que tengo es que necesito meter esos valores en una base de datos con dos campos: Moneda y Precio de moneda.
Como el formato de salida es HTML no sé cómo coger sólo el texto, ni tampoco cómo asociar que Moneda1 va con PrecioMoneda1, etc.
He probado con diferentes opciones en la query XPath y esta solución que pongo es la que más se parece a lo que quiero, pero tampoco me satisface.
¿Alguna idea o sugerencia de cómo hacerlo?
Gracias por vuestra ayuda