Нужна помощь в извлечении определенного текста абзаца и изображений из HTML всей страницы блога.

Мне нужна помощь в разборе html. Прежде чем публиковать вопрос здесь, я пытался найти этот ответ, но не смог найти. Я сохранил полный html страницы блога в таблице базы данных. Теперь я хочу извлечь текст и изображения из этого html. НО мне нужно извлечь из всего html только текст и изображения, относящиеся к абзацу.

См. пример ниже, в нем много тегов кода. В нем три абзаца. Мне нужно извлечь текст и изображения только из пункта 2, который соответствует моему требованию. (У меня есть ключевое слово, и я могу выполнить поиск по этому ключевому слову, и таким образом я могу определить, что мне нужно извлечь этот абзац.)

Как я могу извлечь определенный текст абзаца и изображения из любого блога. У меня есть ключевое слово для поиска в html, то есть ключевое слово = PRODUCT ABC. Я использую пхп.

<html>
<!-- Javascript: tag come here --->
<!-- Head: tag come here --->
<!-- Meta: tag come here --->
<!-- Title: tag come here --->
<!-- Links: tag come here --->
<!-- Javascript: tag come here --->

<body>

<!-- Lot of other code come here about links, javascript, headings etc -->
<!-- DIV: tag come here --->

<p> "PARAGRAPH 1, This paragraph contain only some text." </p>
<!-- Script: tag come here --->

<p> PARAGRAPH 2, It has some information about PRODUCT ABC...</p>
<img /> <!-- some images come here related to this paragraph.-->
<img /> <!-- some images come here related to this paragraph.-->
<img /> <!-- some images come here related to this paragraph.-->
<!-- Script: tag come here --->

<p> PARAGRAPH 3, This paragraph contain only some text. </p>
<img /> <!-- some images come here related to this paragraph.-->
<!-- Links: tag come here --->
<!-- Javascript: tag come here --->

</body>
</head>
</html>

person Jerry3456    schedule 23.05.2013    source источник
comment
Вы можете использовать этот синтаксический анализатор dom на основе PHP, написанный sourceforge.ref:simplehtmldom.sourceforge.net   -  person dreamweiver    schedule 23.05.2013
comment
Я уже использую его, но он не может помочь мне с конкретным текстом абзаца и связанными изображениями. Он приносит весь текст и изображения для всего уровня страницы. Весь текст и все изображения портят мои требуемые результаты. Знаете ли вы, как мы можем получить определенный текст абзаца и изображения?   -  person Jerry3456    schedule 23.05.2013
comment
Почему бы вам сначала не извлечь этот конкретный абзац с помощью синтаксического анализатора dom и не сохранить его в переменной, а затем вызвать find в образце переменной, чтобы извлечь изображения или любые элементы, которые вам нужны. $html = file_get_html('http://www.google.com/'); $par=$html->find('p[id=hello]') ; foreach($par->find('img') as $element) echo $element->src . '<br>';   -  person dreamweiver    schedule 24.05.2013


Ответы (2)


Я согласен с Dreamwiever. Хотя, это html форум. :П

Используйте этот код:

$html = file_get_html('http://www.google.com/'); $par=$html->find('p[id=hello]') ; foreach($par->find('img') as $element) echo $element->src . '
'

person Sasha Seufert    schedule 26.05.2013

если вы ищете простой tag для извлечения, вы можете использовать regex

просто :

$html = "<html><head></head><body><div>sometext</div><div><p>myPtag</p></div><div> some other text</div></body></html>";

preg_match('/<p>(.*?)<\/p>/',$html,$getTheP);

//and simply call what you want from extraction 
var_dump($getTheP);

и тем не менее, если вы хотите, чтобы что-то соответствовало вашему тегу <p>, вы можете просто создать новый путь, чтобы получить то, что вы хотите:

например, нам нужны <p>, которые содержат somestring

preg_match('/<p>(.*?)somestring<\/p>',$html,$matchesWithSomeString);

var_dump ( $matchesWithSomeString )

;

person Saeid Khaleghi    schedule 27.05.2014