Не удается получить JSON данные с внешнего URL-адреса в PHP - PullRequest
0 голосов
/ 13 июля 2020

Вот URL-адрес, откуда я пытаюсь получить данные JSON, но я не могу получить их на другом сайте, он возвращает пустой, ничего.

Вот код, который я использую чтобы попытаться декодировать

$url = 'http://habbolicense.epizy.com/verify?url=https://ujimaradio.com&key=05c99851c3f982a4e2fc874846308594';

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
$obj = json_decode($result);
echo 'result = '.$obj->access_token;

Вот URL: http://habbolicense.epizy.com/verify?url=https: //ujimaradio.com&key=05c99851c3f982a4e2fc874846308594

Спасибо

1 Ответ

0 голосов
/ 28 июля 2020

URL использует javascript для создания контента, в частности {"access_token": "KeyFound"}. Это означает, что клиент должен понимать javascript, чтобы отобразить страницу. Это можно увидеть в полном ответе:

<html>
  <body>
    <script type="text/javascript" src="/aes.js" ></script>
    <script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("7b0167f2554521ca32df18773a2853a1");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://habbolicense.epizy.com/verify?url=https://ujimaradio.com&key=05c99851c3f982a4e2fc874846308594&i=1";</script>
    <noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript>
  </body>
</html>

Вы не можете сделать это с помощью cURL, на самом деле вы не можете сделать это с помощью базовых c библиотек HTTP-запросов, для этой задачи требуется способность выполнить javascript. Это можно сделать с помощью браузера без головы, но в PHP, php -фантом js это один и безголовый хром - php - другое. Обратите внимание, что php -phantom js - это просто оболочка вокруг Phantom JS. Есть еще много вариантов, если вы не ограничены PHP. Вот где будут сиять решения на основе javascript, поскольку вам нужно что-то, что может выполнять javascript.

Вот список безголовых браузеров , который включает небольшую информацию об их возможностях и ограничениях.

...