Пропарсить данные, которые приходят с помощью Ajax-запроса

Статус
Закрыто для дальнейших ответов.

aspirin

Well-Known Member
Регистрация
23.04.2011
Сообщения
127
Возможно ли такое?
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Со своего домена, т.е. с этого же, то можно.
С чужого - нет.
 

aspirin

Well-Known Member
Регистрация
23.04.2011
Сообщения
127
а если данные приходят в JSON формате?
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Не уверен, но вроде защита браузера все равно не даст пропарсить с чужого домена. Для этого надо будет написать небольшой PHP скрипт. Типа прокси. Который будет выступать связующим звеном.
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
FireBug'ом можно посмотреть что и куда отправляется при ajax-запросе (ну и что возвращается):
firebug.gif
(гифка получилась не супер-гуд, но принцип и куда нажать думаю понятно)

Если нужно написать парсер -- опять же смотрим FireBug'ом заголовки/параметры запроса и шлем из нашего скрипта точно такие же.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Это хорошо распарсивается допустим на PHP. Но как я понял тут надо распарсить на JS/Ajax.
Ветка форума то "Javascript / AJAX"

Т.е. я так понял. Человек с помощью ajax загрузил документ в тело страницы....

В общем каков вопрос, таков ответ.
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
Т.е. вопрос "Как распарсить JSON на Javascript"?
Тогда ещё проще -- вбиваем этот вопрос в поисковик и изучаем результаты.
 

aspirin

Well-Known Member
Регистрация
23.04.2011
Сообщения
127
[member=BaNru], на php у меня это выглядело примерно так
Код:
ini_set('user_agent', "CharlesUserAgent1.0");
$url = "http://www.188bet.com/en-gb/sports";
$content = file_get_contents($url);
echo $content;
но получить ту часть, которая загружаеться аяксом не выходит. Это можна реализовать на php? Буду признателен, если покажете как :)
[member=brevis],спасибо за гифку :) но это все мне известно.
Попытки отослать идентичный запрос к ним на сервер заканчиваються неудачей, так как у них стоит редирект (аля защита от частых запросов)
Речь идет о http://www.188bet.com/en-gb/sports а точнее о левом меню.
Неработающий как надо ajax:
Код:
    $.ajaxSetup({
	  headers: {"X-Requested-With":"XMLHttpRequest"}
    });
    $.ajax({
						    type: 'GET',
						    url: 'http://www.188bet.com/en-gb/Service/LeftIndicator?GetLiveEventDetails&_=1326817486177&IsFirstLoad=true',
						    success: function(data) {
									 alert(data);
						    }
							 });
    });
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
Набросок кода на PHP -- http://pastebin.com/zJXwczj7
В результате у меня этот код добывает JSON.

Если сразу не заработает -- возможно нужно будет заменить URL в строке
Код:
$_ = sendRequest( $ses, 'http://www.188bet.com/en-gb/Service/LeftIndicator?GetLiveEventDetails&_=1326875380095&IsFirstLoad=false&VersionL=4264&VersionU=4264', 'get' );
на актуальный. По хорошему этот URL нужно парсить из страницы, но т.к. это у нас набросок -- я просто скопировал его из FireBug'a.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Попытки отослать идентичный запрос к ним на сервер заканчиваються неудачей, так как у них стоит редирект
Значит тут копать в сторону CURL.
Смотри пример brevisа

И про регулярные выражения уже почитал?

Рекомендую непосредственно в своем PHP делать удобный тебе JSON, удаляя лишнее.
И если сайтов несколько, то и приводя к единому виду.

Так же, урлы в свой скрипт передавать чужие напрямуюне получится. Их надо или через пост запрос передавать скрипту или кодировать в base64.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ