HTML-разбор с php - PullRequest
       4

HTML-разбор с php

0 голосов
/ 11 ноября 2018

Кто-нибудь может помочь в разборе этой части HTML-сайта?Я использую php и PHP: DOM Я хотел бы получить Klassifikation и Schlagwörter в одной строке php.Как это сделать?Спасибо

    <tr style="display:table-row;">
    <td id="TREFWOORD" class="onOffLink"></td>
    <td class="rec_lable"><div>
     <span>Schlagwörter</span><span>: </span>
    </div></td>
    <td class="rec_title"><div>
    <span>*</span><span><a class="
        link_gen
        " href="MAT=/NOMAT=T/REL?PPN=106189719">Recht</a></span><span> 
    </span><span><a href="http://" 
   target=""><img src="http://" 
 alt="Subject" title="Subject" class="img_link"></a></span><span> / </span> 
 <span><a class="
        link_gen
        " href="MAT=/NOMAT=T/CMD? 
ACT=SRCHA&amp;IKT=5040&amp;TRM=Wo%CC%88rterbuch">Wörterbuch</a></span>
 </div></td>
 </tr>
 <tr style="display:table-row;">
<td></td>
<td class="rec_lable"><div><span>Klassifikation: </span></div></td>
<td class="rec_title"><div>
 <span>Basisklassifikation: </span><span><a class="
        link_gen
        "  target=""><img 
 src="http://" alt="Subject" 
 title="Subject" class="img_link"></a></span>
</div></td>
</tr>

Я попробовал это безуспешно:

<?php                    

$url='http://...'
$easycurlcmd=sprintf("curl '%s' -o ./libbvhtml.txt", $url);                    
printf("Execute: CURL1 ".$easycurlcmd."\n");                    
exec($easycurlcmd);                    

$html=file_get_contents('./libbvhtml.txt');
$doc = new DOMDocument;
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);

$rec_lable = $xpath->query("//tr/*[contains(@class, rec_lable')]/div/span[1]");

echo $rec_lable->item(0)->nodeValue; // Schlagwörter                    
echo $rec_lable->item(1)->nodeValue; // Klassifikation

Причина была в том, что curl должен быть определен с параметром перенаправления.Спасибо всем.

1 Ответ

0 голосов
/ 11 ноября 2018

Вам нужно использовать DOMDocument::loadHTML для разбора HTML и DOMXPath::query для поиска в DOM.

$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$rec_lable = $xpath->query("//tr/*[contains(@class, 'rec_lable')]/div/span[1]");
echo $rec_lable->item(0)->nodeValue; // Schlagwörter
echo $rec_lable->item(1)->nodeValue; // Klassifikation

Результат проверки в демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...