Нуждаете се от помощ за извличане на конкретен текст на параграф и изображения от html на цялата страница на блога

Имам нужда от помощ при анализирането на html. Преди да публикувам въпрос тук, се опитах да намеря този отговор, но не успях. Съхранил съм пълен html на страницата на блога в таблица с база данни. Сега искам да извлека текст и изображения от този html. НО трябва да извлека само специфичен за абзац текст и изображения от целия html.

Вижте примера по-долу, има много кодови тагове в него. Има три параграфа. Трябва да извлека текст и изображения само от параграф 2, който е подходящ за моите изисквания. (Имам ключова дума и мога да търся тази ключова дума и по този начин мога да идентифицирам, че трябва да извлека този параграф.)

Как мога да извлека конкретен текст и изображения на абзац от всеки блог. Имам ключова дума за търсене в html, т.е. ключова дума = ПРОДУКТ ABC. Използвам php.

<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
Можете да използвате този PHP базиран парсер на dom, написан от 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 форума. :P

Използвайте този код:

$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