PHP: как извлечь контент или очистить наборы данных от исходной страницы сайта - PullRequest
0 голосов
/ 25 октября 2011

Я хотел бы знать, как очистить содержимое исходного кода с веб-сайта, используя php. Я попытался использовать http://simplehtmldom.sourceforge.net/, а также посмотрел на Как вы анализируете и обрабатываете HTML / XML в PHP? Мне все еще трудно пытаться получить информацию из исходного кода. Как вы можете видеть, главная страница исходного кода содержит список ссылок автора, который включает год и количество написанных книг.

<div id="fleft">
    <ul>
    <li><a href="http://www.books.com/john-smith/index.html">John Smith (2011-2012)</a> : 11 books
    <li><a href="http://www.books.com/bobby-bob/index.html">Bobby Bob (2011-2012)</a> : 89 books
    ....
    </ul>
    </div>

Я нажимаю на Джона Смита, чтобы открыть список книг, которые написал Джон Смит.

 <h1>John Smith (11 Books)</h1>
    <div id="fleft">

    <ul>
    <li><a href="http://www.books.com/john-smith/best-book.html">Best Book</a>
    <li><a href="http://www.books.com/john-smith/other-best-book.html">Other Best Book</a>
....
    </ul>
    </div>

Я нажимаю в одной из книг «Лучшая книга», там будет указано название книги, а также и вся история книги.

<code><div id="bookbox">
<h1>Book : Best Book</h1>

<h2>Aurther : John Smith</h2>
<pre>
story of the best book......
.......
....
the end

Я хотел бы иметь возможность получить все имя автора, год его образования, список книг и содержание книги. На самом деле, как набор данных. Может кто-нибудь помочь мне или показать пример кода php, чтобы это произошло. Я хотел бы создать базу данных с информацией об имени автора, году его жизни, созданных ими книгах, названии, категории, содержании книг и т. Д.

1 Ответ

1 голос
/ 25 октября 2011

вы должны упомянуть, какой подход вы используете для получения html целевой страницы, я полагаю, что у вас есть html целевой страницы в переменной $ targetHTML

вы можете загрузить его в dom, как это

/*********** Load In Dom *********/
$html = new DOMDocument;
$html->loadHTML($targetHTML);
$xPath = new DOMXPath($html);
/*********** Load In Dom *********/

вы можете использовать xpath для извлечения желаемых данных из html, загруженного в dom.

Если вы уже используете этот подход, вы можете показать свой код, чтобы выяснить проблему.

С уважением

...