Обсуждение World of Tanks и всего, что с ним связано.
#2194 loginza2734 04 апр 2012, 15:36
Сори, если не там создал тему. Но вопрос меня мучает уже давно, а решения никак не найду и совета тоже.
Вопрос задавал на офф форуме, но ответа пока нет http://forum.worldoftanks.ru/index.php?/topic/153322-%d0%b2-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d1%83-%d1%81%d0%b0%d0%b9%d1%82%d0%be%d0%b2/page__view__findpost__p__8672294
Сделаю перепост:

Хочу озадачить программистов php.
Пока не реализовано логирование (да и после реализации тоже нужно), хочу написать учет голды клана. Но встретился с такой проблемой, как логин на сайте, все бы ничего, но вход защищен сертификатом (ssl).
Пока написал вот такое (использовал класс http://code.google.com/p/httpclass/sour . k/http.php):
Код: Выделить всёinclude('includes/http.php');

$login = 'email@gmail.com';
$pass = 'pass';
$http = new Http();
$http->post('https://worldoftanks.ru/auth/create/', array('login' => $login, 'password' => $pass, 'remember' => false, 'submit' => true), 'UTF-8');
$json = $http->get('https://worldoftanks.ru/uc/clanwars/provinces/regions/3/?ct=json&hash=18973&_=1333371780303', 'UTF-8');


Но логина не происходит. Есть какие нибудь предложения?


ЗЫ перепробовал разные настройки с ssl, даже сертификат пытался сравнивать, но результата 0.
ЗЗЫ Если подставить уже полученные данные кук из ручного входа (через браузер), то мы успешно можем забрать данные о клане, к примеру нужный нам параметр "голд":
Код: Выделить всёinclude('includes/http.php');

$login = 'email@gmail.com';
$pass = 'pass';
$http = new Http();
//$http->post('https://worldoftanks.ru/auth/create/', array('login' => $login, 'password' => $pass, 'remember' => false, 'submit' => true), 'UTF-8');
$http->cookies['.']['csrftoken'] = 'token';
$http->cookies['.']['sessionid'] = 'session';
$json = $http->get('https://worldoftanks.ru/uc/clanwars/provinces/regions/3/?ct=json&hash=18973&_=1333371780303', 'UTF-8');
#2195 Edrard 04 апр 2012, 16:18
Действительно немного не туда, тему перенес, но это не страшно.

Начнем с вашего вопроса, я бы порекомендовал вам CURL + Cookie, работает безотказно

Код: Выделить всё        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $URL);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
        curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');

        $output = curl_exec($ch);
        curl_close($ch);
        return $output;


Но, если вы хотите получать данные о доходе и собирать их каждый день, почему бы не брать их
https://worldoftanks.ru/uc/clans/$id/pro ... type=table
$id - id клана

или вы хотите собирать данные по всем?
#2196 loginza2734 04 апр 2012, 16:41
Мне нужно получать счет клана на каждый день и вести учет (дебет с кредитом :)). А получить данные с клана (секьюрные, типа голда) можно только залогинившись и иметь должность в клане выше новобранца.
Тот класс, который я указал, работает через curl, куки там передаются через переменную $this->cookies и нет необходимости записывать данные в файл.

ЗЫ я представляю StAl и нужно обрабатывать много кланов :)
#2197 Edrard 04 апр 2012, 16:50
Угу, я просто с внутренней структурой кланов и их управления не знаком, причем абсолютно :)

Я еще раз перечитал ваш пост, и не совсем понял, через куки у вас получилось или нет?
#2199 loginza2734 04 апр 2012, 17:08
Если я имею правильные куки (которые я получил в браузере), я успешно забираю данные. Видимо я не могу послать правильный POST запрос на логин и получить куки.
#2200 Edrard 04 апр 2012, 17:19
Если через куки все работает, то предлагаю вам не заморачиваться, я сам когда писал парсер для форума. долго пытался залогинится, в итоге плюнул и пошел по пути заранее созданных куков с id сессии, и вот уже год парсер работает без смены сессии.
#2201 loginza2734 04 апр 2012, 17:26
Хм, в принципе как вариант, если куки будут юзаться каждый день, то они не удалятся, так?
#2204 Edrard 04 апр 2012, 20:41
По разному, у меня например парсер отрабатывает каждый час, соответственно, оно обновляет сессию и не дает ей упасть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Реклама | Adv