Help please, I beg you .. The problem is that I get an array of links, if I follow the full news, but I donβt understand how to make the parser go, please explain a clever man ...
function parser_simple_html($url, $i){ if($i < 1) { $html = str_get_html(get_result($url)); $blog = $html->find("#dle-content", 0); foreach ($blog->find(".post") as $root) { $film = $root->find(".post-title", 0)->find('a', 0)->href; // $film - ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠ»ΠΎΠΊ print $film; // ΠΊΠ°ΠΊ ΠΏΡΠΎΠ±Π΅ΠΆΠ°ΡΡΡΡ ΠΏΠΎ ΡΡΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌ ?? } // Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ $page1 = $blog->find('.navigation', 0)->find('a', 10)->next_sibling ()->href; $page2 = $blog->find('.navigation', 0)->find('a', 9)->next_sibling ()->href; if ($page1 == true){ $page = $blog->find('.navigation', 0)->find('a', 10)->next_sibling ()->href; } else { $page = $blog->find('.navigation', 0)->find('a', 9)->next_sibling ()->href; } // ΠΊΠΎΠ½Π΅Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ // ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ if ((isset($page)) && !empty ($page)){ $i++; parser_simple_html('' . $page . '', $i); } } } $i = 0; parser_simple_html('http://Π΄Π»Π΅-ΡΠ°ΠΉΡ.ΡΡ/page/1/', $i); New view of the program:
// ----------------- ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. // ΠΡΠ½ΠΎΡΠΈΠΌ Π² ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°. function getHtmlDocument($url) { return file_get_html($url); } function getLinksFromDocument($htmlDoc) { // ΠΊΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΉ Π²Π΅ΡΠ½Π΅Ρ Π²ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. // ΠΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΡΠΎ Π±Ρ ΠΎΠ½ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ»ΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π». $ssil = ''; $html = getHtmlDocument('http://dle-site.ru/page/1/'); $blog = $html->find("#dle-content", 0); foreach ($blog->find(".post") as $root) { $ssil .= $root->find(".post-title", 0)->find('a', 0)->href . ' '; } $s = $ssil; $ssilka = explode(" ", $s); return [$ssilka]; } function getArticleInfo($htmlDoc) { $tittle = $articlesInfo->find("#dle-content", 0)->find(".post", 0)->find(".post-title", 0)->find('a', 0)->plaintext; return [ "title" => $tittle, // ΡΡΡ Π΄ΠΎΠΏΠΈΡΠΈΡΠ΅ ΡΠ°ΠΌΠΈ "content" => $tittle // ΡΡΡ Π΄ΠΎΠΏΠ΅ΡΠΈΡΠ΅ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΈ ]; } // ----------------- ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. // ----------------- Π‘Π°ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. // ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠ»ΠΎΠΊ $htmlDocument = getHtmlDocument('http://dle-site.ru/page/1/'); // ΠΠ°ΡΡΠΈΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΡΠΎ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠ»ΠΎΠΊ ΡΠΎΠ»ΡΠΊΠΎ $linkList = getLinksFromDocument($htmlDocument); // ΠΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΡΠ°ΡΡΡΡ
$articlesInfo = []; // ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. foreach ($linkList as $link) { $articleDocument = getHtmlDocument($link); // ΠΠ°ΡΡΠΈΠΌ ΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ. $articlesInfo[$link] = getArticleInfo($link); } // ΠΠ΄Π΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $articlesInfo ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ΅Ρ
ΡΡΠ°ΡΡΡΡ
. // ----------------- Π‘Π°ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.