Получение информации с другого сайта

Статус
В этой теме нельзя размещать новые ответы.

djvavik

Местный житель
Регистрация
27 Авг 2013
Сообщения
170
Реакции
21
Здравствуйте. Возможно кто то уже задавался вопросом по данной системе или будет полезно.
У меня такой вопрос:
Имеется система Для просмотра ссылки Войди или Зарегистрируйся

В эту систему попадают заявки. Имеются разные статусы (Новая, в работе, закончено и тд).

Как не странно, кроме как ежеминутного мониторинга системы узнать о новой поступившей заявке невозможно. E-mail рассылка не производится, АPI отсутствует.

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

Не составляет труда просматривать ежедневно данную систему, но как быть в выходные дни? Да и человеческий фактор никто не отменял.

Назрел такой вопрос, каким образом получать данные из данной системы или же с сайта с помощью PHP, что бы уведомления об изменениях или новых заявках приходили хотя бы на почту?

Или же можно ли как то самому сделать API под данную систему?

Знаний в PHP нет, но может кто нибудь направит в нужное русло.

За ранее спасибо.
 
Здравствуйте. Возможно кто то уже задавался вопросом по данной системе или будет полезно.
У меня такой вопрос:
Имеется система Для просмотра ссылки Войди или Зарегистрируйся

В эту систему попадают заявки. Имеются разные статусы (Новая, в работе, закончено и тд).

Как не странно, кроме как ежеминутного мониторинга системы узнать о новой поступившей заявке невозможно. E-mail рассылка не производится, АPI отсутствует.

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

Не составляет труда просматривать ежедневно данную систему, но как быть в выходные дни? Да и человеческий фактор никто не отменял.

Назрел такой вопрос, каким образом получать данные из данной системы или же с сайта с помощью PHP, что бы уведомления об изменениях или новых заявках приходили хотя бы на почту?

Или же можно ли как то самому сделать API под данную систему?

Знаний в PHP нет, но может кто нибудь направит в нужное русло.

За ранее спасибо.

Приветствую. Если API нет, то придется делать самописный скрипт: чтобы он производил авторизацию и уже потом парсил данные. Для мониторинга можно использовать cron, которому вы и будете скармливать этот скрипт. Единственная проблема - если будете часто использовать cron, можно схлопотать бан. Лучше найти разработчика на специализированных сайтах, типа фриланса, который придумает, как сделать это граммотно.
 
Приветствую. Если API нет, то придется делать самописный скрипт: чтобы он производил авторизацию и уже потом парсил данные. Для мониторинга можно использовать cron, которому вы и будете скармливать этот скрипт. Единственная проблема - если будете часто использовать cron, можно схлопотать бан. Лучше найти разработчика на специализированных сайтах, типа фриланса, который придумает, как сделать это граммотно.
Здравствуйте. API имеется, как оказалось, получил ответ от тех поддержки. Только, как реализовать не знаю. Я так понимаю нужно писать скрипт на JS?

Для просмотра ссылки Войди или Зарегистрируйся

По API я так понимаю тяжелее реализовать. Может подскажите пример парсинга? По Cron проблем нет.

P.S. Почитал на просторах интернета, что можно написать парсер на node.js. Вроде все понятно, но нет примеров с авторизацией на сайте.

Так же понял, что можно спарсить, через PHP, но годного кода совсем не нашел.
 
Последнее редактирование:
По API реализовать конечно же проще.
Причем ответ методами GET можно проверить даже через браузер, например если метод /api/claims работает через GET и принимает параметры указанные таблице то запросить сервер можно примерно так
Для просмотра ссылки Войди или Зарегистрируйся/api/claims?author=пушкин[/URL]
и сайт выдаст ответ в JSON
 
По API реализовать конечно же проще.
Причем ответ методами GET можно проверить даже через браузер, например если метод /api/claims работает через GET и принимает параметры указанные таблице то запросить сервер можно примерно так
Для просмотра ссылки Войди или Зарегистрируйся/api/claims?author=пушкин
и сайт выдаст ответ в JSON
Да, Вы правы. По ссылке Для просмотра ссылки Войди или Зарегистрируйся Я получаю данные. Не могли бы направить в нужное русло, как авторизоваться, что бы потом попасть на эту страницу, перевести в более читабельные вид и сохранить в фаил?
 
Последнее редактирование:
Да, Вы правы. По ссылке Для просмотра ссылки Войди или Зарегистрируйся Я получаю данные. Не могли бы направить в нужное русло, как авторизоваться, что бы потом попасть на эту страницу, перевести в более читабельные вид и сохранить в фаил?
В инете есть множество статей об авторизации через curl, например Для просмотра ссылки Войди или Зарегистрируйся, большинство ухищрений из статьи вам нафиг не надо, форма авторизации довольно простая, главное - сохранять сессию в cookie и передавать их при каждом запросе.
код будет выглядеть примерно так:
PHP:
function request($url,$post = 0){
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url ); // отправляем на
 curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); // сохранять куки в файл
 curl_setopt($ch, CURLOPT_COOKIEFILE,  dirname(__FILE__).'/cookie.txt');
 curl_setopt($ch, CURLOPT_POST, $post!==0 ); // использовать данные в post
 if($post)
 curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
 $data = curl_exec($ch);
 curl_close($ch);
 return $data;
}
request( 'https://eds.mosreg.ru/login',
 array(
 'login-form-email'=>'mylogin@sitename.ru', // логин
 'login-form-password'=>'password', // пароль
)); // авторизация
$data=request('https://eds.mosreg.ru/api/claims?status=EXPIRED_RETURN_TO_DD'); // голые данные
echo $data;
если всё получается - $data_array=json_decode($data) и уже с массивом пляшете
 
Да, Вы правы. По ссылке Для просмотра ссылки Войди или Зарегистрируйся Я получаю данные. Не могли бы направить в нужное русло, как авторизоваться, что бы потом попасть на эту страницу, перевести в более читабельные вид и сохранить в фаил?

Смотри, по авторизации есть два варианта работы через API
Первый - самый популярный и в тоже время более простой - когда ты на каждом запросе передаешь апи ключ, ну примерно так Для просмотра ссылки Войди или Зарегистрируйся
Второй - это любой другой вариант, в частности в твоем случае нужно передать POST запрос содержащий логин и пароль, как будто ты логинишься в сервис. Код постом выше как раз это и делает, поэтому скажем ему "Мне нравится".

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

Ответ от сервиса будет приходить в формате JSON, раскодируем его через json_decode опять же приведенный выше и работаем.
 
В инете есть множество статей об авторизации через curl, например Для просмотра ссылки Войди или Зарегистрируйся, большинство ухищрений из статьи вам нафиг не надо, форма авторизации довольно простая, главное - сохранять сессию в cookie и передавать их при каждом запросе.
код будет выглядеть примерно так:
PHP:
function request($url,$post = 0){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url ); // отправляем на
curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); // сохранять куки в файл
curl_setopt($ch, CURLOPT_COOKIEFILE,  dirname(__FILE__).'/cookie.txt');
curl_setopt($ch, CURLOPT_POST, $post!==0 ); // использовать данные в post
if($post)
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
request( 'https://eds.mosreg.ru/login',
array(
'login-form-email'=>'mylogin@sitename.ru', // логин
'login-form-password'=>'password', // пароль
)); // авторизация
$data=request('https://eds.mosreg.ru/api/claims?status=EXPIRED_RETURN_TO_DD'); // голые данные
echo $data;
если всё получается - $data_array=json_decode($data) и уже с массивом пляшете

Создать документ, к примеру eds.php, разместить код. Права 664
Создать документ site.ru/cookie.txt, поменять путь в коде на этот? Права 775

При переходе по ссылке site.ru/eds.php - на странице показывается сам код почему то...((
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху