DOMXPath в PHP возвращает пустые строки - PullRequest
0 голосов
/ 31 декабря 2018

Я использую xpath для просмотра веб-страниц.Я могу получить ожидаемые результаты с некоторых сайтов (Yahoo и т. Д.), Но не могу получить данные на определенных страницах.Я получаю только пустые строки.В чем моя проблема?

 $html = file_get_contents('http://finance.naver.com/item/frgn.nhn?code=005930');
 $doc = new DOMDocument();
 libxml_use_internal_errors(TRUE);  

 if(!empty($html)){ 

     @$doc->loadHTML($html);
     libxml_clear_errors(); 
     $xpath = new DOMXPath($doc);        

     $row = $xpath->query('//span[@class="tah p10 gray03"]') ;      

     if($row->length > 0) {

            foreach($row as $v){

                $stock[] = $v->nodeValue  ; 

            }     

           var_dump($stock) ;

        } 
}
  • url Содержание: 2018.12.28

  • Ожидаемые результаты: 2018.12.28 и т. Д.

  • фактические результаты: массив (20) {[0] => строка (0) "" [1] => строка (0) "" [2] => строка (0) ""[3] => строка (0) "" [4] => строка (0) "" [5] => строка (0) "" [6] => строка (0) "" [7] => строка(0) "" [8] => строка (0) "" [9] => строка (0) "" [10] => строка (0) "" [11] => строка (0) "" [12] => строка (0) "" [13] => строка (0) "" [14] => строка (0) "" [15] => строка (0) "" [16] => строка (0) "" [17] => string (0) "" [18] => string (0) "" [19] => string (0) ""}

1 Ответ

0 голосов
/ 31 декабря 2018

Я не знаю PHP, но я обнаружил, что может быть ошибкой - поэтому вам нужно иметь кодированный $html UTF-8.

Я добавил следующеестрока после вашей первой строки:

$html = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");

Конвертирует $html в UTF-8.После этого я вижу результаты:

array(20) {
  [0]=>
  string(10) "2018.12.28"
  [1]=>
  string(10) "2018.12.27"
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...