Как заскочить в div с DOMparser - PullRequest
       14

Как заскочить в div с DOMparser

0 голосов
/ 02 октября 2018

Я пытаюсь получить div и для других страниц, пытаюсь поместить его в foreach.Но, столкнувшись с некоторыми проблемами,

<div class="article_info">
    <ul class="c-result_box">
     <li>
      <div class="inner cf">
       <div class="c-header">
         <div class="c-logo"> 
           <im src="/e/designs/31sumai/common/img/logo_08.png" alt="#"> 
             </div>
               <p class="c-supplier">三井のマンション</p>
                    <p class="c-name">
                        <a href="https://www.31sumai.com/mfr/K1503/" class="link" target="_blank">パークリュクス大阪天満</a>
                    </p>

Я пытаюсь получить текст внутри элемента <a>, вот мои коды, чего мне здесь не хватает?

$start_id = 1501;
while(true){

    $url = 'https://www.31sumai.com/mfr/K'.$start_id.'/outline.html';
    $html = file_get_contents($url);
    libxml_use_internal_errors(true);
    $DOMParser = new \DOMDocument();
    $DOMParser->loadHTML($html);
    $xpath = new \DOMXPath($DOMParser);

    $classname="c-name";
    $nodes = $finder->query("//*[contains(@class, '$classname')]");
    $MyTable = false; 
    $insertData = [];  
    foreach($nodes as $node){
        $allNames = [];
        foreach($node->getElementsByTagName('a') as $a){
            $name = $a->getElementsByTagName('a');
            $allProperties[] = [
                'names' => $name];
        }

    }

Спасибо за помощь!

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете положиться на ваш запрос XPath, чтобы получить весь текстовый узел, который вам нужен, а затем просто получить свойство nodeValue в вашем цикле:

$start_id = "1501";
$url = "https://www.31sumai.com/mfr/K$start_id/outline.html";
$html = file_get_contents($url);
libxml_use_internal_errors(true);
$DOMParser = new \DOMDocument();
$DOMParser->loadHTML($html);
$xpath = new \DOMXPath($DOMParser);

$classname="c-name";

$nodes = $xpath->query("//*[contains(@class, '$classname')]/a/text()");
foreach($nodes as $node){
    echo $node->nodeValue;
}
...