Я пробовал это несколько разных способов, и ничего не работает. (Я пробовал все примеры в том, как имитировать дочерний селектор с помощью Simple HTML DOM? ) Используемый код как есть, изменяя то, что мне нужно для моих потребностей, то есть class = xxx и url.
Поэтому я пытаюсь вытащить некоторую информацию с веб-страницы. Нет детей для работы с DOM, и использование метода xpath не принес мне ничего. Я предполагаю, что я делаю что-то неправильно.
<div id="wpp-6" class="widget popular-posts"> <div class="widget_title">POPULAR</div><!-- WordPress Popular Posts Plugin v2.3.2 [Widget] [daily] [regular] --> <ul> <li> <a href="http://link.html" title="Title of post" class="wpp-post-title">THE DATA I WANT</a> <span class="post-stats"></span> </li> <!-- More lists --> </ul> </div>
После этого есть еще около 9 списков. Какие-либо предложения?
Используя PHP Simple HTML DOM Parser, вы можете сделать это легко, просто скачайте файл simple_html_dom.php
отсюда и используйте его следующим образом.
include('simple_html_dom.php'); $html=file_get_html('http://psfk.com'); foreach($html->find('div#wpp-6 ul li a') as $a){ echo $a->innertext.'<br />'; }
вinclude('simple_html_dom.php'); $html=file_get_html('http://psfk.com'); foreach($html->find('div#wpp-6 ul li a') as $a){ echo $a->innertext.'<br />'; }
Карта Google Flu отображает худшие вспышки в США
Скотч-ленточные портреты Контурные человеческие лица [Фотографии]
Новый дизайн для девятнадцати восьмидесяти четырех лет Оруэлла Тема цензуры
Водка, сделанная из фильтрации спиртного напитка с обнаженными моделями [Видео]
Samsung Debuts Гибкие экраны
McDonald's меняет свое название в Австралии
Прозрачный экран Samsung – это розничное окно будущего [CES]
Dita Von Teese выказывает QR-коды прямо в ее одежду
Abercrombie & Fitch Boss заставляет пассажиров выполнять только боксеры и сандалии на частном самолете
Mirror App показывает женщинам, как они будут возрастом, если они будут пить
Если вы хотите напечатать заголовок со link
например <a>...</a>
просто используйте echo $a
Прошло некоторое время с тех пор, как я использовал xpath, так вот мое решение. Вы можете проходить дерево DOM таким образом, проверяя id и класс нужного элемента
<?php error_reporting(0); //needed because of invalid xml $url = "http://www.psfk.com"; $xml = new DOMDocument("1.0", 'UTF-8'); $str = file_get_contents($url); // Load the url's contents into the DOM $xml->loadHTML($str); //Loop through all divs in the dom until we find what we need foreach($xml->getElementsByTagName('div') as $div) { if($div->getAttribute('id') == 'wpp-6' && $div->getAttribute('class') == 'widget popular-posts') { if($div->parentNode->getAttribute('id') == 'right') { foreach($div->getElementsByTagName('li') as $li) { foreach($li->getElementsByTagName('a') as $link) { echo $link->textContent . "<br>";; } } } } } ?>