2013-04-12 2 views
-1

Я хотел бы прочитать шансы со следующего сайта: http://uk.wettportal.com/Soccer/England/Premier_League/Arsenal_FC_-_Everton_FC_963003.htmlкак получить AJAX содержание страницы с помощью PHP

Шансы динамически загружаются с помощью Ajax. Исходная страница не содержит коэффициентов. Есть ли какой-либо метод для получения содержимого этой страницы с использованием php?

+2

Ajax - это просто кодовое слово для «Выполнение запросов HTTP». PHP может выполнять HTTP-запросы. [Условия использования этого сайта] (http://uk.wettportal.com/terms/) запрещают многое из того, что вы планируете делать с этими данными. – Quentin

+0

Так что это нормально использовать, но только для личного использования. –

ответ

1

Если данные URL фиксирована вы можете использовать его сразу же с помощью простого PHP однострочника:
$data = json_decode(file_get_contents('http://domain.com/data.json'));

Если URL данных, удовлетворяющего «Аякса» не зафиксирован, в первую очередь необходимо получить hostpage (выше строки минус json_decode) и получить от него фактическую ссылку на данные.

Примечание: если автор сайта сделал свою работу правильно там может быть меры в месте с этим, как: проверка реферера, HTTP заголовки браузера, сеансовых куки и т.д.
Это сделало бы его более трудным (никогда невозможно) получить данные.

В таких случаях вы должны использовать CURL или php fsockopen (doc here) и эмулировать браузер.
Не забывайте об обработке файлов cookie (поскольку этот сайт использует это !!! Я принюхался по трафику) и, вероятно, реферер (URL-адрес главной страницы). Также не забудьте заголовок X-Requested-With: XMLHttpRequest.


Пример (для случая):

Из функции refresh_odds можно увидеть, как создаются те данные, URL, (я вымыл форматирование так приятно н легко читать):

var url = "/lib/ajax/getEventResult.php"; 
var data = "event_id=" + $("#event_id").val() 
     + "&partner=" + $("#partner").val() 
     + "&lang=" + $("#language").val(); 

var url = "/lib/ajax/getOddsTable.php"; 
var data = "partner=" + $("#partner").val() 
     + "&lang=" + $("#language").val() 
     + "&period=" + $("#period").val() 
     + "&betgame=" + $("#betgame").val() 
     + "&eventmode=" + $("#eventmode").val() 
     + "&event_id=" + $("#event_id").val() 
     + "&bettype=" + $("#bettype").val(); 

Теперь вы знаете, что скрытые идентификаторы полей ввода - это то, что ваш php-скрипт должен искать на главной странице, чтобы построить живой URL-адрес данных.


Update (как на ваш комментарий)

вкладке нечетной-х делает:

$("#period").val("fulltime"); 
refresh_odds(); 

вкладка Период делает:

$("#period").val(period); 
refresh_odds(); 

Посмотрите, как она восходит к refresh_odds() ...?

Удача

+0

Спасибо за ответ! используя file_get_contents. Я получаю только содержимое вкладки, загружаемой по умолчанию (1X2). Мой вопрос заключается в том, как получить шансы от других вкладок (Over/Under, Handicap и т. Д.). – user2275245

+0

Итак, чтобы получить коэффициенты с вкладки 1x2, мне нужен следующий URL-адрес: http://uk.wettportal.com/lib/ajax/getOddsTable.php?partner=wettportal&lang=en&period=fulltime&betgame=&eventmode=upcoming&event_id=963003&bettype=3way. Я прав? Чтобы получить коэффициенты от других вкладок, мне нужно изменить параметр . – user2275245

+0

Обновлен мой ответ. Обратите внимание, что это все еще сводится к моему первоначальному ответу, где построен URL-адрес. – GitaarLAB

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