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

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

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

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

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

Cheery



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

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

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А я не пойму как получить cURL'ом этот sessid, в куках вообще другой md5.
 
Добавлено:

Код:
 
session_start();
header('Content-Type: text/html; charset=utf-8');
$sessionID = session_id();
$ch = curl_init('http://www.estaxi.ru/b/templates/bs/components/bitrix/map.yandex.search/taxi_on_map/ajax.php?sessid='.$sessionID.'&action=get_cars&city_id=70000001');
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');
$text = curl_exec($ch);
curl_close($ch);
echo $text;
 

Получаю

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

 
Что не так?

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



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

Цитата:
Что не так?

Написан бред. Речь не о сессии вашего php скрипта, а о сессии создаваемой тем сайтом.

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

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



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

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



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


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

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



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

Код:
 
header('Content-Type: text/html; charset=utf-8');  
$ch = curl_init('http://www.estaxi.ru/client/map.php?city_id=70000001');  
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');  
curl_setopt($ch, CURLOPT_HEADER, 0);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');  
$text = curl_exec($ch);  
curl_close($ch);  
echo $text;  
 

 
И как его получить???

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



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

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

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



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

Код:
 
<script type="text/javascript">
BX.message({
    'LANGUAGE_ID':'ru',
    'FORMAT_DATE':'DD.MM.YYYY',
    'FORMAT_DATETIME':'DD.MM.YYYY HH:MI:SS',
    'COOKIE_PREFIX':'ESTAXI','USER_ID':'',
    'SERVER_TIME':'1388245031',
    'SERVER_TZ_OFFSET':'25200',
    'USER_TZ_OFFSET':'0',
    'USER_TZ_AUTO':'Y',
    'bitrix_sessid':'cd92eb4b08610585d3870d09c7972dd6',
    'SITE_ID':'s1',
    'JS_CORE_LOADING':'Загрузка...',
    'JS_CORE_NO_DATA':'- Нет данных -',
    'JS_CORE_WINDOW_CLOSE':'Закрыть',
    'JS_CORE_WINDOW_EXPAND':'Развернуть',
    'JS_CORE_WINDOW_NARROW':'Свернуть в окно',
    'JS_CORE_WINDOW_SAVE':'Сохранить',
    'JS_CORE_WINDOW_CANCEL':'Отменить',
    'JS_CORE_H':'ч',
    'JS_CORE_M':'м',
    'JS_CORE_S':'с',
    'JSADM_AI_HIDE_EXTRA':'Скрыть лишние',
    'JSADM_AI_ALL_NOTIF':'Показать все',
    'JSADM_AUTH_REQ':'Требуется авторизация!',
    'JS_CORE_WINDOW_AUTH':'Войти'})
</script>
 

Попробую извлечь.
 
Добавлено:
Так наконец-то, извлек sessid теперь проблема в следующем:
1) Получаю  sessid

Код:
 
$ch = curl_init('http://www.estaxi.ru/client/map.php?city_id=70000001');
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');
$text = curl_exec($ch);
curl_close($ch);
preg_match( '/bitrix_sessid(.*?)SITE_ID/is' , $text , $links );
$temp = str_replace("bitrix_sessid':'", "", $links[0]);
$sessid = str_replace("','SITE_ID", "", $temp);  
 

2) Теперь мне нужно cURL'ом получить данные

Код:
 
$ch2 = curl_init('http://www.estaxi.ru/b/templates/bs/components/bitrix/map.yandex.search/taxi_on_map/ajax.php?sessid='.$sessid.'&action=get_cars&city_id=70000001');
curl_setopt($ch2, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch2, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, '1');
$text2 = curl_exec($ch2);
curl_close($ch2);
echo $text2;
 

 
Получаю снова {"error":"Invalid session"}, но оно и понятно так и должно быть. А как это сделать в рамках одной сессии? Ведь заранее неизвестно, что слать будем. Я имею в виду значение переменной $sessid.

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



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

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

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery круто, чуть со стула не упал, все то что нужно получил. ОГРОМНОЕ СПАСИБО!!!
 
Теперь пойду API от яндекса читать....

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
I need help!!!
Cheery что то произошло, куки перестали записываться.
 

Код:
 
$ch = curl_init('http://www.estaxi.ru/client/map.php?city_id=70000001');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
$text = curl_exec($ch);
preg_match( '/bitrix_sessid(.*?)SITE_ID/is' , $text , $links );
$temp = str_replace("bitrix_sessid':'", "", $links[0]);
$sessid = str_replace("','SITE_ID", "", $temp);
$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/sessid.txt', 'w');
fwrite($fp, $sessid);
fclose($fp);
$ch = curl_init('http://www.estaxi.ru/b/templates/bs/components/bitrix/map.yandex.search/taxi_on_map/ajax.php?sessid='.$sessid.'&action=get_cars&city_id=70000001');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
$text2 = curl_exec($ch);
curl_close($ch);
$ar = json_decode($text2, true);
foreach($ar['CARS'] as $car) {
if ($car['id_org'] != '79098069')
$car = null;
}
$ar = array_filter($ar['CARS']);
echo json_encode($ar);
 

 
Получаю NULL, если убрать "фильтр", то {"error":"Invalid session"}
Куки не пишутся

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 10:09 11-03-2014
Cheery



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

Цитата:
Куки не пишутся

ну, возможно, нет прав на запись/создание файла
Цитата:
$_SERVER['DOCUMENT_ROOT'].'/cookie.txt'



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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 11:19 11-03-2014
koreets2011



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

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 11:23 11-03-2014
Cheery



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

Цитата:
Ну это совсем бонально.

а есть другие подозрения? для начала - посмотреть, что файл создается и в нем есть данные.
а остальное - могло что то поменяться и в другом месте - например в странице, откуда берется ID, заметили запросы и что то еще изменили.
 
когда информация добывается подобным образом, не через официальный API, то все возможно

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 11:26 11-03-2014
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если удалить cookie.txt он сам не появляется.
 
Добавлено:
sessid.txt пишется номер сессии, проверил.
cookie.txt нифига ничего не пишется
 
Добавлено:

Цитата:
заметили запросы и что то еще изменили

Владельцы сайта в курсе:

Цитата:
 
Думаю Вы не возражаете против получения данных курлом от Вашего скрипта:
http://www.estaxi.ru/b/templates/bs/components/bitrix/map.yandex.search/taxi_on_map/ajax.php
 


Цитата:
 
Возражений нету.
 
Специалист службы технической поддержки: Александр Беликов
 
С уважением,
Служба технической поддержки
ООО "Единая Служба"
Контакты Службы технической поддержки
Skype: est-support
ICQ  : 630074258
тел  : 8-913-670-3737
 

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 11:41 11-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
у меня все работает.. еще раз - проверьте возможность создания cookie.txt

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

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
х.з как это объяснить, но я перенес домен и весь сайт на новый веб-сервер, и все работает.
cookie.txt появился.

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

Страницы: 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