- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте!
Есть страничка: https://play.google.com/store/apps/details?id=com.miniclip.plagueinc
Пытаюсь из нее вытащить комментарии, там первоначально загружается 6шт комментов, после нажатия кнопки слева, загружаются асинхронно постранично остальные. Я решил достать комментарии со 2й страницы, как бы сэмулировать клик по кнопке и получить данные. Отследил запрос firebug'oм, для получения след. комментов посылается запрос сюда: https://play.google.com/store/getreviews, с такими параметрами: reviewType=0&pageNum=2&id=com.miniclip.plagueinc&reviewSortOrder=2&xhr=1, ответ приходит в виде JSON. Посмотрел все заголовки и написал скрипт который должен загрузить этот JSON:
Но данный скрипт виснет, выдает в окончании:
В чем здесь проблема? обычные странички с этого сайта грузятся внорме, а вот загрузить этот json с комментами не получается....
Подладил, уже работает. Но ответ приходит в таком формате (куски текста укоротил чтоб влезли в сообщение):
Браузер это показывает вот так:
����o�Xv���_�IQ�A-�oI3��%ʖ%ʢ���S|ɢD��D=�y`:�H:��[,��N��[��'�8����{/eǑlǙdw/��.�����ѹ�������կnYF�� �r�t���a�C�p�~}4?�շ�]�J���m�>���-l�[�Z=�y�u�x=kͷ<߱�L+�l��Kی�x��)�� *�N�h�NS�� �������k����vW۵>��iNpr'�:|>�� �����0< ����>H�1m�Z;)��'%[A��?^[sZ������ �V����r�U���%�+�V�J�Fk�������Z��C��͵�k#:�0-:�淼�[m��#[�Nf�f8Ѳ4������ k�k��#ٵN�~r3*q2�����?�T�|��e6ٜ%���iq]��P�tN�!���������&���&N�([CYb��^Тs�|�V+5k\3�����י��H�sQ�m������H]�k-�}o���X���3���I˝�L�i�I,|�Ͼ�H������ru'�;��~·z]ͱ��9��|��4z���]۵ ��W}G�X���d���IT��<�Jeت���-t�"����y���P GS!��e.5�;<� ��k��7Q�֤&f�u�,��*������yaK�L_��E��ڰrrQ������x%ș�9 ���N��gwg�,����>6��ٽ�xv�?�g����i]����Ri�Ū���z#�1^*� 肠��]�ތ��п�jmF��b½�'�vx�v2V����X�v������/ ���T��|��:�P������XeH�G�����X�L04U-W1�\�n������2p����P|uk��L�6�����c]̀�����Ѿ0��RO�3�xi��^ �I�(�qǮ=giq|�%%�R� �Lo�cd�-��iߜ����m8���8�kP]����j�$�}���Функция json_decode($text,TRUE), возвращает пустой массив. Почему так? данные вродеб как в JSON...
---------- Добавлено 09.05.2014 в 03:37 ----------
Такие заголовки содержатся в ответе:
напишите конкретно (файл) что вы пытаетесь переводить в json_decode
в данном тексте ошибки, так же возможны ошибки в кодировке, при которых json_decode будет возвращать ноль.
https://play.google.com/store/apps/details?id=com.miniclip.plagueinc&reviewType=0&pageNum=0&id=com.miniclip.plagueinc&reviewSortOrder=2&xhr=1
явно не в формате json возвращает
нужно вырезать.
Добавление мусора к json ответам уже когда-то обсуждалось.
http://habrahabr.ru/post/168461/
И кстати, сами в заголовках разрешили gzip, а CURLOPT_ENCODING не задали.
Так что либо
либо заменить
на
Спасибо, теперь работает, но приходится обрезать этот кусок ")]}' " с помощью substr();
А если будет случай, в котором этот лишний кусок будет длиннее или будет в конце, то как тогда привести строку json в нормальный вид чтобы можно было ее кодировать в массив? есть какое-то более грамотное или универсальное решение?
Может как-то так
$json = ")]}' [[\"ecr\",1]] 89";
preg_match_all('|\[\[(.*)\]\]|sei', $json, $result);
print_r($result[0]);
?>
Вывод от первого [[ до последнего ]]
SocFishing, где-то ошибка, пустой массив возвращает
мне бы пример этого массива
preg_match_all('|\[\[(.*)\] \]|sei', $json, $result);
print_r($result[0]);
?>
а так
SocFishing, тоже нет, вот пример ответа
$json = file_get_contents('text.txt');
preg_match_all('|\[\[(.*)\] \]|sei', $json, $result);
print_r($result[0]);
?>
у меня работает =\\
вначале [[ в конце ] ]
странно, у меня возвращает в $result
(
[0] => Array
(
)
[1] => Array
(
)
)