Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Парсер страниц

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
День добрый, мне нужно получить данные вот отсюда
http://www.estaxi.ru/client/map.php?city_id=70000001
Пытался делать парсером, но невыходит - постоянно висит "загрузка карты"
 
У меня появилась мысль (возможно бредовая), но что если ajax отправить запрос в виде

Код:
 
$.ajax({
   type: "GET",
   url: 'http://www.estaxi.ru/client/map.php',
   data: {city_id: '70000001',},
   cache: false,
   success: function(data){'Тут обработчик'}
});
 

 
В теории вернется JSON с координатами и данными машин. Затем подключить yandex maps и наложить все это при помощи z-index.
 
 
Добавлено:
Тория теорией, чет JSONP не вернул, то чего я ждал....
Может быть cURL и iFrame - Подскажите?
 
Добавлено:
С помощью cURL запарсил все страницу целиком, вывожу, скрипт пишет - неверный ключ. Как же мне запарсить данные с http://www.estaxi.ru/client/map.php?city_id=70000001  
которые находятся между <div class="taxi-on-map-layout"></div>

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 12:15 27-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
вывожу, скрипт пишет - неверный ключ.

что выводите, какой скрипт пишет??  

Цитата:
Как же мне запарсить данные

делаете curl запрос и вытаскиваете нужные вам данные

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:03 27-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery не все так просто, сайт донор блокирует запросы типа jsonp, cURL не подходит, так как меняет домен.
сделал хитровыеба**ый iframe.
Собственно вот:
http://test.taxi-69.ru/content/taximaps.php




Нарушение п. 2.3. главы VIII Соглашения по использованию /Cheery/

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 23:18 27-12-2013 | Исправлено: Cheery, 23:23 27-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
cURL не подходит, так как меняет домен.

так переводите все запросы через себя - своеобразный аналог прокси.

Цитата:
типа jsonp

JSON и JSONP немного разные вещи, не путайте.
JSON не всегда сработает кроссдоменным запросом, а для JSONP его поддержка должна быть на стороне удаленного сервера (он передает js код с автоматическим вызовом указанной функции)
iframe с чужого домена не даст вам возможности забрать из него данные или передать в его тело (только если в качестве GET/POST параметров, то есть с обновлением содержимого iframe. ну или нужен официальный API указанного ресурса.
 
ps: если вы в подпитом состоянии, то настоятельно рекомендуется не писать ничего на форуме.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:25 27-12-2013 | Исправлено: Cheery, 23:29 27-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery искренне извиняюсь за нарушения (подпил немного).
К сожалению API отсутствует, но думаю вскоре появится.  
Хотелось выводить на карту от яндекса, где находятся не все автомобили такси, а конкретной диспетчерской службы, пробовал именно JSONP (но как оказалось не поддерживает сервер), JSON понятно только на одном домене, я думал на счет cURL с PHP Proxy. Не уверен, что получится, то что нужно.
 
Еще раз извиняюсь.

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 23:39 27-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
ну так выводите.. смотрите как берутся данные для карты, берите их аналогичным образом и отображайте на своей карте.
вот только раз нет API для этого, то владельцы сервиса могут быстро пресечь подобные действия изменением вывода данных.. как в случае Парсер организаций с Яндекс карт

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:50 27-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
владельцы сервиса могут быстро пресечь подобные действия изменением вывода данных.

Они не против, API в разработке (вот на сколько затянется неизвестно).
Cheery я может не так понимаю, но с моей точки зрения все выглядит так:
Имеется яндекс карта на которую накладываются метки.
Допустим мне нужно получить от этого сайта данные в формате JSON. firebug показывает, что и как передается и отдается в моем случае это

Код:
 
http://www.estaxi.ru/b/templates/bs/components/bitrix/map.yandex.search/taxi_on_map/ajax.php?sessid=49fa2aa71cce3076fd037b5604252ae7&action=get_cars&city_id=7000001
 

Ну и собственно ответ с сервера в виде JSON (выводить не буду много данных)
 
Вот и как мне их получить себе???

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 00:01 28-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
Вот и как мне их получить себе???

делать аналогичный запрос php скриптом и получать данные.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:05 28-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ошибочка вышла вот то что мне нужно

Код:
 
http://www.estaxi.ru/b/templates/bs/components/bitrix/map.yandex.search/taxi_on_map/ajax.php?sessid=49fa2aa71cce3076fd037b5604252ae7&action=get_cars&city_id=70000001
 

 
Добавлено:
Так домены разные??? Я не пойму...

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 00:06 28-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
при чем тут домены?? я же сказал - php скриптом, получить данные. далее выдать их своему js скрипту.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:09 28-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я конечно в курсе, что это уже другой вопрос. Как?

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 00:12 28-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
Как?

что именно "как"? не знаете как сделать curl запрос в php? или что именно?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:13 28-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Начинаю понимать...

Код:
 
curl_init('адрес страницы донора');
 

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 00:15 28-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
http://phpclub.ru/detail/article/curl
http://se2.php.net/manual/ru/curl.examples-basic.php
http://ruseller.com/lessons.php?rub=37&id=1187

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:17 28-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не соображу как отфильтровать данные JSON, понятно что регулярным выражением.
Вот данные JSON

Код:
 
{"CARS":[{"id":"1137007760468","id_city":"70000001","id_org":"79098069","lon":"84.9732188333333","lat":"56.525168","alt":"95","velocity":"0","timestamp":"2013-12-28 02:35:36","status":0},
 

после запятой по аналогии

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 00:18 28-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
Не соображу как отфильтровать данные JSON

что значит "отфильтровать"?  
www.php.net/json_decode
json можно отдавать "как есть" js скрипту.
можно, конечно, проверять для безопасности данные, но это уже зависит от способа их использования.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:20 28-12-2013 | Исправлено: Cheery, 00:21 28-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Отфильтровать, в смысле ответ содержит множество id_org, меня же интересуют только те данные которые содержат определенный id_org, вот в этом вся фишка. отобразить на карте только те машины которые принадлежат известной мне id_org. А все остальное в топку, как говорится.

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 00:25 28-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
я указал на функцию. она преобразует строку в массив данных, обработать и обратно собрать в json через json_encode, ну или в то, в каком виде хочется их использовать.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:26 28-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Понял, буду завтра пробовать... Пойду фильм смотреть... Голова уже кипит, может к утру API выпустят
 
Добавлено:
огромное спасибо Cheery за потраченное время.

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 00:29 28-12-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот незадача, при обращении cURL'ом, получаю

Код:
 
{"error":"Invalid session"}
 

sessid=49fa2aa71cce3076fd037b5604252ae7
Это md5 - вот только чего???

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 16:48 28-12-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Парсер страниц


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru