Estoy tratando de obtener los elementos de un resultado de búsqueda con DOMXPath. Aquí hay un ejemplo con un resultado de búsqueda con 4 elementos de resultado:
https://www.11880.com/suche/0521441422/deutschland
Ahora, con el siguiente código, obtengo los de 4 elementos, pero no sé cómo colocar cada elemento dentro de los elementos (como nombre, calle, etc.).
¿Me puede ayudar con esto?
$ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, 'https://www.11880.com/suche/0521441422/deutschland'); $page = curl_exec($ch); $dom = new DOMDocument(); $dom->loadHTML($page); $xpath = new DOMXPath($dom); foreach($xpath->query('//li[@class="search-result-list-item"]') as $item) { echo trim($item->nodeValue).'<br>'; }Supongo que puedes usar:
$ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, 'https://www.11880.com/suche/0521441422/deutschland'); $page = curl_exec($ch); libxml_use_internal_errors(true); $dom = new DOMDocument(); $dom->loadHTML($page); $xpath = new DOMXPath($dom); $results = []; $results['name'] = $xpath->query('//h2[@itemprop="name"]'); $results['street-name'] = $xpath->query('//span[@class="street-address"]'); $results['postal-code'] = $xpath->query('//span[@class="postal-code"]'); $results['address-locality'] = $xpath->query('//span[@class="address-locality"]'); $results['quarter'] = $xpath->query('//span[@class="quarter"]'); for($x=0; $x < $results['name']->length;$x++) { print trim($results['name']->item($x)->textContent); print trim($results['street-name']->item($x)->textContent); print trim($results['postal-code']->item($x)->textContent); print trim($results['address-locality']->item($x)->textContent); print trim($results['quarter']->item($x)->textContent)."\n"; }Producción:
Brauer, Harald Dr.med. Hals- Nasen- OhrenarztHauptstr. 9233647Bielefeld(Brackwede) Elies-Kramme, Sybille Dr.med. Fachärztin für HNO-HeilkundeHauptstr. 9233647Bielefeld(Brackwede) Gemeinschaftspraxis HNO-Bielefeld-Süd ÜBAG Michael KW Stolle und Dr. Sybille Elies-KrammeHauptstr. 9233647Bielefeld(Brackwede) Stolle, Michael KW Facharzt für HNO-HeilkundeHauptstr. 9233647Bielefeld(Brackwede)