Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.05.2016, 11:33
Новичок на форуме
Отправить личное сообщение для m1fs1 Посмотреть профиль Найти все сообщения от m1fs1
 
Регистрация: 23.05.2016
Сообщений: 8

запрос к стороннему сайту
Стоит задача такая: задача автоматизации проверки штрафов для целого парка автомобилей предприятия. На официальном сайте gibdd.ru есть api, но там информация только об отделениях ГИБДД (если правильно понял). Получение же инфы через их сервис http://www.gibdd.ru/check/fines/ с вводом капчи слишком трудоемкий процесс для оператора. Есть сторонние сайты без ввода капчи, например, http://pddmaster.ru/shtrafi/shtrafy-...os-nomeru.html. Есть мысль скормить список авто с СТС в цикле в виде get-запроса и получить/не получить результат.
Поскольку сам новичок в этом деле, попробовал сделать простую веб-страницу с XMLHttpRequest, запускаемую локально, естественно, ничего не получилось, т.к. кросс-доменный запрос запрещен по-умолчанию в браузерах (который можно включить https://developer.mozilla.org/en-US/...s_control_CORS, в хроме есть даже плагин). Дальнейшие копания ни к чему не привели. Подумав и почитав, решил реализовать на ноде.
Вот код:
var request = require('request');
var fs = require("fs");
 
// Set the headers
var headers = {
    'User-Agent':       'Super Agent/0.0.1',
    'Content-Type':     'application/x-www-form-urlencoded'
}
 
// Configure the request
var options = {
    url: 'http://pddmaster.ru/shtrafi/shtrafy-gibdd-po-gos-nomeru.html',
    method: 'GET',
    timeout: 10000,
    headers: headers,
    qs: {'sts': '77МХ******', 'format': 'plain'}
}
 
// Start the request
request(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        // Print out the response body
        console.log(body);
        fs.writeFile('pdd.htm', body);
    }
})

Смотрю записанный файл, там есть такие строки: «Загрузка системы поиска штрафов» «Идет поиск штрафов! процесс может занять несколько минут»

Когда вручную вбиваю номер СТС, выдается именно эти строки - первая при загрузке страницы, вторая после нажатия кнопки «Искать!». В ответ получим (в случае отсутствия штрафов): «Поздравляем! В Государственной информационной системе по Вашим данным не нашлось ни одного штрафа.»

Это сообщения в созданном файле нет. Возможно, что таймаут не срабатывает или другое?

В чем ошибки? В правильном ли направлении иду? И вообще, возможны ли подобные запросы на такие сайты?
Ответить с цитированием
  #2 (permalink)  
Старый 23.05.2016, 12:51
Аспирант
Отправить личное сообщение для Max Power Посмотреть профиль Найти все сообщения от Max Power
 
Регистрация: 15.12.2015
Сообщений: 83

Делать надо однозначно на стороне сервера, да.

Вот список возможных направлений:
1) В данный момент сайт gibdd.ru фактически лежит, возможно проблема в этом
2) Есть платные сервисы автоматического распознавания капчи
3) User-agent - эмуляция запроса из браузера
4) Phantomjs - полная эмуляция браузера с JS
5) Таймауты между запросами чтобы не банили
6) Прокси для обхода возможного бана.

В целом если нет api - такие задачи решаются сложно и с кучей головной боли.
Ответить с цитированием
  #3 (permalink)  
Старый 23.05.2016, 12:54
Аспирант
Отправить личное сообщение для Max Power Посмотреть профиль Найти все сообщения от Max Power
 
Регистрация: 15.12.2015
Сообщений: 83

Еще - на https://www.gibdd.ru/api/ информация о том что сервис в стадии разработки. Если есть api - должен быть саппорт, там можно узнать когда планируется реализация интересующего функционала, может быть просто проще будет дождаться его.
Ответить с цитированием
  #4 (permalink)  
Старый 23.05.2016, 13:03
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от m1fs1 Посмотреть сообщение
ничего не получилось, т.к. кросс-доменный запрос запрещен по-умолчанию в браузерах (который можно включить https://developer.mozilla.org/en-US/...s_control_CORS, в хроме есть даже плагин).
Где в Firefox включить не подскажешь, а то по твоей ссылке об этом ничего нет?
Ответить с цитированием
  #5 (permalink)  
Старый 23.05.2016, 13:15
Новичок на форуме
Отправить личное сообщение для m1fs1 Посмотреть профиль Найти все сообщения от m1fs1
 
Регистрация: 23.05.2016
Сообщений: 8

Где в Firefox включить не подскажешь, а то по твоей ссылке об этом ничего нет?
http://stackoverflow.com/questions/17088609/disable-firefox-same-origin-policy
Ответить с цитированием
  #6 (permalink)  
Старый 23.05.2016, 13:25
Новичок на форуме
Отправить личное сообщение для m1fs1 Посмотреть профиль Найти все сообщения от m1fs1
 
Регистрация: 23.05.2016
Сообщений: 8

Сообщение от Max Power Посмотреть сообщение
Еще - на https://www.gibdd.ru/api/ информация о том что сервис в стадии разработки. Если есть api - должен быть саппорт, там можно узнать когда планируется реализация интересующего функционала, может быть просто проще будет дождаться его.
Вот что нашел на тостере (
https://toster.ru/q/138645
):

Вот страничка с описанием методов в ГИБДД АПИ www.gibdd.ru/api
Но к сожалению там не описан метод получения списков штрафов по номеру автомобиля. Подскажите пожалуйста, может быть кто-то сталкивался с данной проблемой? Может быть кто-то знает хороший бесплатный сервис?
P.S. Вопрос задаю тут, так как на мое письмо, которое я выслал по адресу, указанному в обратной связи, уже долгое время никто не отвечает.

Вопрос задан более года назад 4110 просмотров

До этого изучал их сайт. Судя по всему разработчики забили. Там есть сведения о региональных отделениях ГИБДД, о штрафах там нового нет (сейчас не могу посмотреть, сайт действительно лежит).
Ответить с цитированием
  #7 (permalink)  
Старый 23.05.2016, 13:32
Новичок на форуме
Отправить личное сообщение для m1fs1 Посмотреть профиль Найти все сообщения от m1fs1
 
Регистрация: 23.05.2016
Сообщений: 8

Сообщение от Max Power Посмотреть сообщение
Делать надо однозначно на стороне сервера, да.

Вот список возможных направлений:
1) В данный момент сайт gibdd.ru фактически лежит, возможно проблема в этом
2) Есть платные сервисы автоматического распознавания капчи
3) User-agent - эмуляция запроса из браузера
4) Phantomjs - полная эмуляция браузера с JS
5) Таймауты между запросами чтобы не банили
6) Прокси для обхода возможного бана.

В целом если нет api - такие задачи решаются сложно и с кучей головной боли.
1) у меня обращение не на сайт ГИБДД, на на pddmaster.ru;
2) о платных думал, читал. Для их подключения нужен хотя бы более менее рабочий код, которого пока нет. Возможно, что даже наш оператор будет капчу вводить вместо индусов
5) пока я делаю один запрос, таймаут не нужен, но, похоже, что в приведенном коде таймаут не срабатывает.
Ответить с цитированием
  #8 (permalink)  
Старый 23.05.2016, 13:32
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

m1fs1, у меня build 43, а там про до 36-го, как быть?
Ответить с цитированием
  #9 (permalink)  
Старый 23.05.2016, 13:36
Новичок на форуме
Отправить личное сообщение для m1fs1 Посмотреть профиль Найти все сообщения от m1fs1
 
Регистрация: 23.05.2016
Сообщений: 8

Сообщение от Rise Посмотреть сообщение
m1fs1, у меня build 43, а там про до 36-го, как быть?
Аддон не работает, не пробовали установить? В последнем посте от марта пишут:
The browser addon answer by @Giacomo should be useful for most people and I have accepted that answer, however, for my personal research needs (TL;won't explain here) it is not enough and I figure other researchers may need to do what I did here to fully kill SOP.
Ответить с цитированием
  #10 (permalink)  
Старый 23.05.2016, 13:44
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

m1fs1, а если браузер обновить попробовать так не проще получится?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос на языке JavaScript (не PHP) U_M0KRH Серверные языки и технологии 3 31.07.2015 05:06
Как оборвать на сервере и клиенте запрос если у клиента пропала сеть. beard AJAX и COMET 3 21.12.2012 16:35
AJAX запрос в Internet Explorer срабатывает через раз nikolayseo jQuery 5 13.11.2012 00:13
Запрос на сервер Serjuk AJAX и COMET 6 04.06.2012 03:09
Запрос - ответ(VK,json) Slawaq Серверные языки и технологии 4 25.09.2010 00:28