file_get_html () не работает для единственной веб-страницы - PullRequest
0 голосов
/ 14 января 2019

Я хочу назвать простой DOM файл

Я протестировал с другими ссылками, и он работает, но с этим URL не работает.

Мой код:

 $bnadatos = file_get_html("http://www.rofex.com.ar/cem/FyO.aspx");

 foreach($bnadatos->find('[@id="ctl00_ContentPlaceHolder1_gvFyO"]') as $i){
     echo "datos:";
     echo $i->innertext;
 }

Ответ - пустая страница.

Что не так?

Ответы [ 2 ]

0 голосов
/ 14 января 2019

я решил с

 $arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  

$response = file_get_html("https://www.rofex.com.ar/cem/FyO.aspx", false, stream_context_create($arrContextOptions));


foreach($response->find('[@id="ctl00_gvwDDF"]/tbody/tr[2]/td[2]') as $i){

  echo $i->innertext;

}

спасибо @ maio290 за свет мою дорогу

0 голосов
/ 14 января 2019

Это всего лишь предположение, но есть ли у вас сообщения об ошибках?

Из коробки это не работает с библиотекой simple-html-dom:

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /var/www/html/dom.php on line 83

Warning: file_get_contents(): Failed to enable crypto in /var/www/html/dom.php on line 83

Warning: file_get_contents(http://www.rofex.com.ar/cem/FyO.aspx): failed to open stream: operation failed in /var/www/html/dom.php on line 83

Fatal error: Call to a member function find() on boolean in /var/www/html/test.php on line 11

Исправление для этого можно найти здесь - с этим на месте, я все еще получаю пустую страницу, которая из-за неправильного ответа (301 Moved Permanently) - чтобы это исправить, вам нужно изменить

'follow_location' => false 

до

'follow_location' => true

Итак, теперь мы получаем правильное содержимое сайта - вы можете изменить селектор на $html->find('#ctl00_ContentPlaceHolder1_gvFyO');, чтобы найти все элементы, которые id=ctl00_ContentPlaceHolder1_gvFyO - см. Документацию в качестве ссылки.

...