рдлрд┐рд░ рд╕реЗ phpQuery рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

рд╕рднреА рдХрд╛ рдЕрднрд┐рд╡рд╛рджрдиред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдЖрджреЗрд╢ рд▓рд┐рдпрд╛, рдЬрд╣рд╛рдВ рд╕рд╛рдЗрдЯ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП (рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдирд╛) рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рд▓реЗрдЦ рдХреА рд╕рд╛рдордЧреНрд░реА:



рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


рдЬрдм рд╕реЗ рдореИрдВ php рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдореЗрд░реА рдирдЬрд░ phpQuery рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдкрдбрд╝реА ред рдмреЗрд╢рдХ, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдХрдИ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд php рд╢рд╛рдорд┐рд▓ рд╣реИ , рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдореЗрдВ рдлреНрд░реАрд▓рд╛рдВрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрдорддреНрдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЖрд▓рд╕реНрдп рд╣рдо рд╕рднреА рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЪреЗрдХ рдЖрд▓рд╕реНрдп рдиреЗ phpQuery рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд░реВрд╕реА рдореЗрдВ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдорд┐рд▓рд╛ (рд╢рд╛рдпрдж рдореИрдВ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рдерд╛?)ред рдирдП рд▓реЛрдЧреЛрдВ рд╕реЗ рдордВрдЪреЛрдВ рдкрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдвреВрдВрдврдирд╛, рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реЗрдЦ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


PhpQuery рд╕рдмрд╕реЗ рддреЗрдЬ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдирдП php рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рд▓рдЧрднрдЧ рдЕрджреГрд╢реНрдп рд╣реИред рдореБрдЦреНрдп рд▓реЛрдб, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рдкреЗрдЬ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЯрд┐рдХреА рд╣реБрдИ рд╣реИред
рдЗрд╕рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдХрдИ рд░реВрд╕реА-рднрд╛рд╖рд╛ рдХреЗ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдХреБрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдЬрд┐рдиреНрд╣реЗрдВ phpQuery рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреМрдбрд╝рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ js рджреБрдирд┐рдпрд╛ рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд╣рдпреЛрдЧреА)ред рд╣рд╛рдВ, рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рдмрдбрд╝реА рдЦрд╛рдореА рд╣реИ - рдХреЛрдб рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╢реБрд░реБрдЖрдд рдХрд╛рдо


рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ phpQuery рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рднреА рдХрдард┐рди рдХреНрд╖рдгреЛрдВ рдХреЛ "рдЪрдмрд╛рдиреЗ" рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдбреЛрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣рдо jQuery рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдирд╛рдо рдпрдерд╛рд╕рдВрднрд╡ рд╕рдорд╛рди рд╣реИрдВред

рдФрд░ рдРрд╕рд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЙрд╕ рд╕рд╛рдЗрдЯ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╣рдо HTML рдХреЛрдб рд▓реЗрдВрдЧреЗред рд╡реИрд╕реЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рд╣реЛрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓ (рдЪрд░) рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА html (xml) рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

/**  : $siteName = "site.com/";  : $siteName = "index.html"; */ $html = file_get_contents("$siteName"); 

рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдХреЛ phpQuery рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

 $dom = phpQuery::newDocument($html); 

"NewDocument ()" рд╡рд┐рдзрд┐ рдПрдХ рдбреЛрдо рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рдПрдЧреА рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рд╣рдо рдЗрд╕ рдбреЛрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреБрдЫ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдПрдХ рд╕рд╛рдЗрдЯ рдХреЗ рдПрдХ рдкреГрд╖реНрда рдХреЛ рдЦреАрдВрдЪ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдРрд╕рд╛ рдмреНрд▓реЙрдХ рд╣реИ:

 <div class="product-essential"> <a class="brand-link" href="https://-_.com/-_" title="- "> <span class="brand-name">- </span> </a> <div class="product-name"> <h1>Jeans Denim</h1> </div> <div class="price-info"> <div class="price-box"> <span class="regular-price" id="product-price-424337"> <span class="price">тВм 200</span> </span> </div> </div> <div class="description"> <span class="product-description"> </span> <div class="sku"> <span> ID :</span> <span>830214303</span> </div> </div> </div> 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдмреНрд░рд╛рдВрдб, рдмреНрд░рд╛рдВрдб рдирд╛рдо, рдЙрддреНрдкрд╛рдж рдХрд╛ рдирд╛рдо, рдЗрд╕рдХреЗ рд╡рд┐рд╡рд░рдг, рдЖрдИрдбреА рдФрд░ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИред

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛


рдЖрдЗрдП рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

 //   $html = file_get_contents("https://-_.com/"); //   dom $dom = phpQuery::newDocument($html); //    dom    .product-essential,    find().        . foreach($dom->find(".product-essential") as $key => $value){ //  dom    phpQuery.       pq();    ($)  jQuery. $pq = pq($value); //        .brand-link     "href"    attr(); $productHref[$key]["brand-href"] = $pq->find(".brand-link")->attr("href"); //   .     <span class="brand-name">- </span>. //    ,   <span>       text(); $productHref[$key]["brand-name"] = $pq->find(".brand-name")->text(); //      . //    ,      . //         <h1>,     <div class="brand-name"> $productHref[$key]["product-name"] = $pq->find(".product-name h1")->text(); // PhpQuery    ,    , . //      ! //     . $productHref[$key]["product-price"] = $pq->find(".price-info .price-box .regular-price .price")->text(); //    $productHref[$key]["product-description"] = $pq->find(".description .product-description")->text(); //       . //      next(); //           . $productHref[$key]["product-id"] = $pq->find(".description .sku span")->next()->text(); } 

рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рд╣рдореЗрдВ рдпрд╣ рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИ:

 Array ( [0] => Array ( [brand-href] => https://-_.com/-_ [brand-name] => -  [product-name] => Jeans Denim [product-price] => тВм 200 [product-description] =>   [product-id] => 830214303 ) ) 

рдирд┐рд╖реНрдХрд░реНрд╖


PhpQuery рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрд╕рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдмрд╣реБрдд рднрд╛рд░реА рд╣реИред рдЗрд╕рд▓рд┐рдП рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЙрддрд╛рд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ:

 phpQuery::unloadDocuments(); 

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕рдХреА рдЖрджрдд рди рдбрд╛рд▓реЗрдВред рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡рддрдГ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдереЛрдбрд╝рд╛ рдкреБрд░рд╛рдирд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред

рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдордХреНрдЦреА рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

Source: https://habr.com/ru/post/hi471644/


All Articles