PHP-метод для отображения содержимого span только после того, как на исходной странице был выполнен javascript - PullRequest
0 голосов
/ 26 декабря 2018

Привет! Я ищу простой метод только для PHP (т. Е. JS / Jquery / Ajax для конечного пользователя), способ выполнения file_get_contents или cURL после запуска JS на исходной странице.

У меня есть 2 рабочих примера, получающих конкретный SPAN с Class = "CurrentBG" с удаленного компьютера, однако содержимое этого SPAN создается файлом JS, который запускается в конце страницы.Таким образом, использование и cURL, и get_file_contents оставляет меня с --- в качестве содержимого и печати, а не изменяющегося содержимого (это содержимое по умолчанию этого SPAN, пока оно не будет заменено функцией JS).

Вот мой пример get_file_contents

<?php 

$page = file_get_contents('https://haspdenbloodglucose.herokuapp.com/');
$doc = new DOMDocument();
$doc->loadHTML($page);
$spans = $doc->getElementsByTagName('span');
foreach($spans as $span) {
    // Loop through the DIVs looking for one withan id of "content"
    // Then echo out its contents (pardon the pun)
    if ($span->getAttribute('class') === 'currentBG') {
         echo $span->nodeValue;
    }
}

?>

Вот мой пример cURL

<?php
$curl = curl_init('https://haspdenbloodglucose.herokuapp.com/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

$page = curl_exec($curl);

if(curl_errno($curl)) // check for execution errors
{
    echo 'Scraper error: ' . curl_error($curl);
    exit;
}

curl_close($curl);

$regex = '/<span class="currentBG">(.*?)<\/div>/s';
if ( preg_match($regex, $page, $list) )
    echo $list[0];
else 
    print "Not found"; 
?>

Я хочу запустить его из браузера в браузере на Amazon Kindle Paperwhite / touch (неспроси меня почему хаха)однако функциональность сайтов очень ограничена, поэтому я стараюсь, чтобы то, что работает на конечных пользователях, было как можно более ограниченным ...

Это будет использоваться для простого представления данных о глюкозе крови пользователей на их планшетах.цифровая индикация стиля циферблата.

Спасибо

1 Ответ

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

cURL не будет выполнять никакой javascript, то же самое относится к file_get_contents.Вы получите только DOM без динамически визуализируемого контента.

Вы должны попытаться выяснить, как график с этого веб-сайта загружается на страницу.Вы можете использовать инструмент веб-разработчика chrome или firefox [F12] и проверить вкладку «сеть» во время загрузки приложения, чтобы узнать URL ресурса.

Если вам повезет, вы сможете получить данные напрямую.из этого источника.Надеюсь, это поможет!

...