Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пропарсить https, parsing https, curl 
:(
    Опции темы
CaptainNemo
Дата 13.7.2011, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 5.6.2008
Где: White Russia, Min sk

Репутация: нет
Всего: 9



Подскажите, если не составит труда, как парсить курлом (или еще как на PHP) https сайты. Или, если можно, дайте хинт, где можно почитать про такое... Сколько не гуглил, толковых примеров не нашел. 
Я имею ввиду https авторизацию и последующий парсинг. На простых http  это проще проходит: или с заголовками поиграть, или cookie отослать на сервер, или страницу с формой авторизации сохранить и в ней подменить post на get и подсмотреть в адресной строке прямую ссылку... Но с https такие номера у меня не проходят. Как такое заделать? 

Спасибо... 
PM MAIL WWW ICQ Skype GTalk   Вверх
s0lman
Дата 13.7.2011, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



Цитата(CaptainNemo @  13.7.2011,  02:39 Найти цитируемый пост)
с https такие номера у меня не проходят

 smile 

как-то парсил был это, с https не возникло малейших осложнений...


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
CaptainNemo
Дата 14.7.2011, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 5.6.2008
Где: White Russia, Min sk

Репутация: нет
Всего: 9



s0lman, 

Я имею ввиду, что мне надо вначале залогиниться программно, а потом уж пропарсить... Так вот, на большинстве нужных мне сайтов удается получить http-авторизацию путем отправки в запросе cookies: 

Код

curl_setopt($curl, CURLOPT_COOKIE, "login=$my_login;password=$my_pass");


или отправить на сервер POST-запрос:
Код

curl_setopt($curl, CURLOPT_POSTFIELDS, "login=$my_login&password=$my_pass");


Или комбинацией кукис и POST, или собрать такую длинную ссылку и зайти GET-ом 
Код

curl_setopt($curl, CURLOPT_URL, 'http://mysite.ru/receiver.php?login=$my_login&password=$my_pass'');



Во всех сайтах, куда у меня получилось таким образом прорваться средствами cURL приемником запросов, насколько я разобрался, был index.php. Короче php.
А на тек, куда не получается (https), там, как я понимаю, обрабатывает запросы *.aspx. Вот туда, как не мудрил, не могу программно зайти. 
Может кто подскажет пару хитростей, как этому противостоять   smile ... Благодарю... 



PM MAIL WWW ICQ Skype GTalk   Вверх
Absinthe
Дата 14.7.2011, 08:48 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



CaptainNemo, зачем тебе нужно логиниться на чужой сайт?
Спамишь?
А нужно ли тебе помогать, чтобы ты потом наши же сайты проспамил?
PM MAIL   Вверх
CaptainNemo
Дата 14.7.2011, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 5.6.2008
Где: White Russia, Min sk

Репутация: нет
Всего: 9



Absinthe, 
Цитата

CaptainNemo, зачем тебе нужно логиниться на чужой сайт?
Спамишь?
А нужно ли тебе помогать, чтобы ты потом наши же сайты проспамил? 


Да нет, у меня благие намерения... Я на свой локальный сервак хочу подтягивать балансы с ИССА-сайтов, ну и еще всякую хрень с инета. У меня три симки на мобилах, и еще 3g модем симка, лазить по всем этим сайтам в ручную - можно задолбаться... 


У меня на Андройде такая штука, довольно удобно. Но там далеко не вся инфа, которую я хотел видеть... 
user posted image

 Я хотел сделать виндоус-гаджет для этого под Win7, но там, как оказалось, много тонкостей с кросдоменным парсингом. Поэтому решил просто на локальный сервак всё затягивать. Вот... 

Цитата

наши же сайты


И что там за сайты такие, можно взглянуть? 
PM MAIL WWW ICQ Skype GTalk   Вверх
seolife
Дата 14.7.2011, 11:07 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.7.2011

Репутация: нет
Всего: нет



Можете поискать в google
PM MAIL   Вверх
CaptainNemo
Дата 14.7.2011, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 5.6.2008
Где: White Russia, Min sk

Репутация: нет
Всего: 9



seolife, 
Цитата

Можете поискать в google 


Спасибо за очень полезный совет. Как же я сразу до этого не додумался... 

Это сообщение отредактировал(а) CaptainNemo - 14.7.2011, 11:14
PM MAIL WWW ICQ Skype GTalk   Вверх
Absinthe
Дата 14.7.2011, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Цитата

И что там за сайты такие, можно взглянуть? 
 К сожалению сайтов опараторов там нет :(

По теме: в чем проблема с HTTPS?
PM MAIL   Вверх
CaptainNemo
Дата 14.7.2011, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 5.6.2008
Где: White Russia, Min sk

Репутация: нет
Всего: 9



Absinthe, 

Цитата

По теме: в чем проблема с HTTPS? 


Ну, например, вот страница:
https://issa.life.com.by/Account.aspx
Мои действия:
Просматриваю http-заголовки, вижу, что на Account.aspx идет POST-запрос вида:
Код

Code=$code&Phone=$login&Password=$pas

Пробую залогиниться, например, через POST:
Код

<?php
$code='';$login='';$pas='';

  if( $curl = curl_init() ) {
    curl_setopt($curl, CURLOPT_URL, 'https://issa.life.com.by/Account.aspx');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, "Code=$code&Phone=$login&Password=$pas");
    $out = curl_exec($curl);
    echo $out; //ничего не отображается - пустая страница
    $info = curl_getinfo($curl);
    print_r($curl); //выдает Resource id #2
    curl_close($curl);
  }
?>



Точно такая же фигня, если отправляю юзернейм и пасворд в таком формате:
Код

curl_setopt($curl, CURLOPT_COOKIE, "Code=$code;Phone=$login;Password=$pas");

Пытаюсь собрать прямую ссылку для GET-запроса:
Код

https://issa.life.com.by/Account.aspx?Code=$code&Phone=$login&Password=$pas

При переходе через адресную строку браузера выбрасывает на страницу для логинга с незаполненными полями…

Что еще можно попробовать сделать? 


Это сообщение отредактировал(а) CaptainNemo - 14.7.2011, 12:26
PM MAIL WWW ICQ Skype GTalk   Вверх
patap
Дата 14.7.2011, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



Код

  $ch = curl_init();
  $url = 'https://issa.life.com.by/Account.aspx';    
  $data = 'Code=25&Phone=1235151235&Password=1234';
  
  // это как бы первый заход на сайт, тут я так думаю из результата нужно получить куку, т.к. она учавствует в запросе при авторизации
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  
  $res = curl_exec($ch);
  
  preg_match('#Set-Cookie: (.*?HttpOnly)#', $res, $match); // сообственно наша кука


  // тут пытаемся залогиниться
  // я установил все заголовки которые отсылает клиент + куку
  // по идее если все верно, то должно прокатить...

  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:2.0) Gecko/20100101 Firefox/4.0',
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
    'Accept-Encoding: gzip,deflate',
    'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
    'Keep-Alive: 115',
    'Connection: keep-alive',
    'Content-Type: application/x-www-form-urlencoded',
    'Referer: https://issa.life.com.by/Account.aspx',
    'Content-Length: ' . strlen($data)
  ));
  curl_setopt($ch, CURLOPT_COOKIE, $match[1]);
  
  $res = curl_exec($ch);
  
  var_dump($res);

затем смотри что будет в заголоках, там должен быть адрес куда тебя редиректить дальше.
на счет 100-процентной работоспособности неуверен, т.к. дело это тонкое, могут быть ньюансы

Добавлено через 5 минут и 27 секунд
навскидку - установи Live http headers для ФФ, и проследи по заголокам весь процесс авторизации, т.к. могут быть срытые редиректы, куки там всякие, или еще что-то, что так просто не увидишь и все это дело подпихывай в соответствующие запросы на сервак


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.