2016-02-24 2 views
0

Я не совсем уверен, как сформулировать этот вопрос, поэтому я просто спрошу, что я могу.Получить содержимое веб-страницы и разместить в массиве или строке

Я хотел бы знать, как захватить содержимое веб-страницы и поместить его в строку или массив, чтобы я мог анализировать данные.

Это страница: https://campusdata.uark.edu/api/buses?callback=?&routeIds=8

Веб-страница возвращает что-то вроде этого:

?([{"id":25,"fleet":15,"name":"Fleet 15","description":"","zonarId":9,"gpsId":"8061088","latitude":"36.0680039","longitude":"-94.1758039","speed":0.000,"heading":89.700,"power":true,"date":"\/Date(1456339080000)\/","color":"#0090ff","routeName":"Blue","routeId":8,"distance":9999999999,"nextStop":"Garland Center","nextArrival":"8 mins"},{"id":33,"fleet":6,"name":"Fleet 6 ","description":"","zonarId":13,"gpsId":"8061090","latitude":"36.0818423","longitude":"-94.1707598","speed":0.000,"heading":181.700,"power":true,"date":"\/Date(1456339200000)\/","color":"#0090ff","routeName":"Blue","routeId":8,"distance":2.31887983012931,"nextStop":"South Creekside","nextArrival":"1 mins"}]); 

Я не уверен, что лучший способ пойти об этом ... AJAX через JQuery? Может быть, php-вызов? Я не знаю.

Я искал это, но, как я уже сказал, я точно не знаю, как сформулировать вопрос, поэтому мои результаты поиска были в лучшем случае спорадическими. Может кто-нибудь мне помочь?

+0

Это jsonp, вы можете получить его с помощью jquery или просто указать тег скрипта на url: '', который регистрирует данные. вам нужно передать его функции, которая хочет данные, изменив «console.log» на имя вашей функции, если вы хотите сделать больше, чем просто зарегистрировать его. – dandavis

+0

«Веб-сканер» - это фраза, которую вы ищете http://stackoverflow.com/questions/13029811/how-can-i-get-a-web-page-into-a-string-using-javascript –

ответ

2

кажется JSONP. Вы можете использовать jQuery, чтобы легко извлекать данные из конечной точки API. См. Приведенный ниже пример:

$.ajax({ 
     url: "https://campusdata.uark.edu/api/buses?callback=?&routeIds=8", 

     // The name of the callback parameter 
     jsonp: "callback", 

     // Tell jQuery we're expecting JSONP 
     dataType: "jsonp", 

     data: {}, 

     // Work with the response 
     success: function(response) { 
      console.log(response); // server response 
     } 
    }); 

Описание: jsfiddle с рабочим примером. Перед тем, как попробовать, обязательно включите jquery на странице.

+0

вы должны поместить параметр обратного вызова в конец URL-адреса, чтобы использовать jsonp с jq ... ed: oh, вы указали имя параметра; это тоже работает, это новее и дольше, чем я привык. – dandavis

+0

Благодарим вас за молниеносный ответ плюс jsfiddle. Это работает ... так же делает код от @Guillermo Andres Fuentes Moral. Я предпочитаю php, поэтому я поеду с этим, но вы получите ответ, потому что вы так быстро ответили! – Apolymoxic

0

Получить содержимое страницы с помощью функции file_get_contents. Удалить незаконный символ. Преобразование формата JSON в PHP массив:

<?php 

$page = file_get_contents('https://campusdata.uark.edu/api/buses?callback=?&routeIds=8'); 
$page = substr($page, 0, -2); 
$page = substr($page, 2); 
var_dump (json_decode($page)); 
+0

просто дон 't передать параметр обратного вызова, если вы не хотите заполнять json ... – dandavis

+0

Спасибо за добавленный удалить незаконный символ символа – Apolymoxic

1

Вы можете использовать это в PHP

$site = file_get_contents("http://campusdata.uark.edu/api/buses?callback=&routeIds=8"); 
print_r(json_decode($site)); 

Reference

json_encode

file_get_contents

+1

Ваш код возвращает NULL – Sky

+0

Да, я ошибаюсь, обратный вызов пуст для json;) @Sky –

+0

Это отлично работает для что я хочу. Я бы отметил как ответ, но @TeaCode побил вас до удара. Их ответ сработал, но я предпочитаю php. – Apolymoxic

Смежные вопросы