2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки





Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение27.08.2015, 19:52 
Аватара пользователя


12/02/14
11
Прошу помощи-подсказки по следующему вопросу.

Дано:
Есть вот такой замечательный простенький сайт http://www.latlong.ru/
Интересует тот раздел, где после ввода широты и долготы получаем высоту над уровнем моря.

Требуется:
Код (или хотя бы объяснение принципиального подхода к решению), последовательно
1) вводящий в inputы формы числа из txt файла на компе
2) нажимающий на кнопку "Определить"
3) записывающий результат в txt файл на компе (даже не обязательно в тот же)

Сразу на вопрос:
-А на ксуя? Почему не вручную?
 !  Toucan:
См. post1048549.html#p1048549

Ответ:
- Точек (пар) широта/долгота многовато... =7292 штуки.

И на вопрос:
- А чё не скачаешь карту в бинарном виде и не поработаешь с ней?
Ответ:
- Точек маловато... =7292 ( :) ),
всё равно придётся рыться в этом огромном массиве,
так как эти карты обычно очень уж хорошего разрешения.


Заранее благодарю за понимание и ценные советы.

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение27.08.2015, 20:09 
Заслуженный участник


06/07/11
3094
Solist в сообщении #1048476 писал(а):
Код (или хотя бы объяснение принципиального подхода к решению), последовательно
Имхо, тут лучше зайти с другой стороны.
Есть такая замечательная кроссплатформенная утилита curl. Если грубо - она имитирует браузер. Работает из командной строки.
Далее принцип такой: заходите на ваш сайт, заполняете форму, отправляете, и одновременно отладчиком (есть во многих браузерах) смортите, какой запрос он отправляет. Потом вам всего лишь надо повторить этот запрос curl'ом. Если есть навыки работы из командной строки, то дальше автоматизировать не проблема.

-- 27.08.2015, 21:11 --

Ну и конечно сохранять в файл ответ от сервера curl умеет. А дальше опять же ваши навыки работы с командной строкой.

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение27.08.2015, 20:34 
Аватара пользователя


12/02/14
11
Цитата:
и одновременно отладчиком (есть во многих браузерах) смортите, какой запрос он отправляет.


Извините за невежество, но где найти этот отладчик например в яндекс-браузере?

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение27.08.2015, 21:01 
Заслуженный участник


06/07/11
3094
В фаерфоксе - правой кнопкой на странице и затем "Проинспектировать элемент", или меню "Инструменты" - "веб-разработка". Яндекс-браузер, ЕМНИП, это клон фаерфокса, там должно быть все то же самое более-менее.

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение27.08.2015, 21:20 
Аватара пользователя


12/02/14
11
rockclimber в сообщении #1048496 писал(а):
В фаерфоксе - правой кнопкой на странице и затем " Яндекс-браузер, ЕМНИП, это клон фаерфокса, там должно быть все то же самое более-менее.


я так понял "просмотр кода элемента"? .....- тогда он подсвечивает строку, относящуюся к кнопке:

<input type="button" value="Определить" onclick="javascript:altj();">

могу я извлечь из этого что-то полезное? или я упорно куда-то не туда смотрю?

из вопросов очевидно, что я ни хрена не знаю :)))

подскажИте, где почитать доступный материал применительно к поставленной задаче?
когда формулировал задачу, казалось, что решение будет существенно проще

по нажатию кнопки "определить" выполняется что-то на js, как я понимаю,
а как увидеть, что именно?

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение27.08.2015, 22:19 
Заслуженный участник


06/07/11
3094
Solist в сообщении #1048505 писал(а):
я так понял "просмотр кода элемента"? .....- тогда он подсвечивает строку, относящуюся к кнопке:

<input type="button" value="Определить" onclick="javascript:altj();">
Извините, мне не хочется качать и ставить еще один браузер. Я покажу скриншот на примере фаерфокса. Команда, аналогичная вашей "просмотр кода элемента" в фаерфоксе открывает окно отладки, на котором по умолчанию отображается HTML код страницы. Но там еще несколько кнопок есть, вам нужна "сеть" (я тут перепутал, "отладка" - это про джаваскрипт). Ну или можно выбрать "Инструменты" - "веб-разработка" - "Сеть", тогда сразу там окажетесь.
Я зашел на страницу логина сайта dxdy.ru, ввел в поля слова "логин" и "пароль", нажал "Отправить" (перед нажатием на "Отправить" нажал на кнопку "очистить" в самом углу внизу справа на скриншоте - это очищает историю команд в отладчике). После отправки смотрим на список команд (строчки внизу, первая POST, остальные GET). Вот POST - это отправка запроса. Кликаете на эту строку, появляется то окошко, что на скриншоте справа. Там надо щелкнуть на "Параметры". Как видите, браузер отправил на сервер параметр username со значением "логин" и параметр password со значением "gfhjkm" ("пароль") и несколько других. Вот примерно так вы можете узнать, что отправляет браузер на сервер.

Solist в сообщении #1048505 писал(а):
из вопросов очевидно, что я ни хрена не знаю
Совершенно не очевидно. Тут зашел как-то один такой же. "Я, типа, не программист, помогите". А потом оказалось, что ему не нравится скорость работы встроенной в паскаль функции, вычисляющей экспоненту, и он написал на ассемблере свою и просил совета, как выжать из кода экономию еще пары тактов.

Solist в сообщении #1048505 писал(а):
подскажИте, где почитать доступный материал применительно к поставленной задаче?
Вообще без понятия, я в веб-разработке чайник полный. Мои познания в этой теме на 50% состоят из статей русской википедии (гуглите "post запрос"...).

Solist в сообщении #1048505 писал(а):
когда формулировал задачу, казалось, что решение будет существенно проще
Я перечислю решения, которые приходят в голову мне (и я когда-то делал нечто, отдаленно похожее на то, что надо вам).
1. Вы под виндовсом.
Приложения используют Windows API, чтобы рисовать графический интерфейс. Используя WinAPI, вы можете получить доступ к содержимому полей для ввода и к кнопкам. Но тут есть загводка - не факт, что браузеры вам это позволят. Opera версий до 12-й включительно не использовала WinAPI для отрисовки страницы. А вот IE использовал. Про остальные браузеры не знаю.
2. Опять же под виндовсом.
Можно использовать WinAPI, чтобы поместить курсор мыши в нужное место, имитировать клики, ввод с клавиатуры и т. д. Тогда опять же неважно, что там ваш браузер для отрисовки использует. Но будьте готовы к тому, что вызов WinAPI может не понравиться вашему антивирусу.
3. Тот способ, что я рекомендовал ранее.
4. На этом вашем сайте написано, что они берут данные у гугла и яндекса. Вы можете попробовать использовать непосредственно API гугла или яндекса.

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

Кстати, на этом вашем сайте написано, что вы можете за денежку получить доступ к API их сервиса, 5000 запросов стоят 25 долларов. А вы 8000 хотите ;) Как бы они ваш IP не забанили после первой пары тысяч запросов.


Вложения:
Screen Shot 2015-08-27 at 20.37.28.png
Screen Shot 2015-08-27 at 20.37.28.png [ 260.71 Кб | Просмотров: 0 ]
 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение27.08.2015, 22:28 
Аватара пользователя


12/02/14
11
Цитата:
5000 запросов стоят 25 долларов. А вы 8000 хотите ;) Как бы они ваш IP не забанили после первой пары тысяч запросов.


В общем:

Благодарю за исчерпывающее :), типа: "ну всё что знал - рассказал" :) Буду пользовать.

Про 5000 запросов:

не обратил внимания, отдельное спасибо за предупреждение,
а то я уже 1700 точек вручную нафигачил...
хотя у меня плавающий IP, может с этим как-то прокатит...
осталось всего ничего, как раз где-то 5500, ежли вручную :)

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение27.08.2015, 22:32 
Заслуженный участник


06/07/11
3094
Solist в сообщении #1048505 писал(а):
по нажатию кнопки "определить" выполняется что-то на js, как я понимаю, а как увидеть, что именно?
Как-то можно - это точно, но тут я не подскажу. Я сейчас попробовал погуглить - curl вроде умеет и javascript эмулировать.

-- 27.08.2015, 23:35 --

Solist в сообщении #1048520 писал(а):
а то я уже 1700 точек вручную нафигачил...
:shock:
Вручную - это не страшно, по запросу раз в несколько секунд. Просто если автоматизировать, то компьютер может и тысячи запросов в секунду слать, наверняка они к этому готовились.

Ах да, все вышенаписанное относилось к отправке запроса. А ведь надо ответ получить и обработать. Это тоже весело.

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение27.08.2015, 23:57 
Админ форума
Аватара пользователя


19/03/10
8697
Solist в сообщении #1048476 писал(а):
Сразу на вопрос:
-А на ксуя? Почему не вручную?
 !  Solist, предупреждение за завуалированный мат.

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение28.08.2015, 00:34 
Заслуженный участник
Аватара пользователя


27/04/09
19376
Уфа
Что ж, это был GET-запрос http://www.latlong.ru/elevation.php?lat=12.3456&long=78.9012, кому интересно. (У меня как раз FF, и я сегодня добрый :-) .) Понятно, где что,

(Оффтоп)

Так и есть, широта была введена 12.3456, а долгота — 78.9012.
и ожидал лично я тоже примерно такого же. Ответом пришёл JSON примерно такого вида:
Используется синтаксис Javascript
{
  results: {
    0: {
      elevation: 236.1667938232422;
      resolution: 152.7032318115234;
      location: {
        lat: 12.3456;
        lng: 78.9012;
      };
    };
  };
  status: "OK";
}
«Примерно» — потому что не нашёл, где скопировать его код, и набрал сам по отображённому дереву.

Как видно, высота указана в метрах, а вот в чём и чьё указано разрешение — без понятия.

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение28.08.2015, 00:50 
Заслуженный участник
Аватара пользователя


01/09/13
1258
arseniiv в сообщении #1048565 писал(а):
«Примерно» — потому что не нашёл, где скопировать его код, и набрал сам по отображённому дереву.

Возможно, что без сессии (в куках она) не пройдёт.... Точно пока не могу сказать - в Win10 дебильный отладчик что у Edge, что у IE11

-- 28.08.2015, 01:14 --

А вообще
Solist в сообщении #1048476 писал(а):
объяснение принципиального подхода к решению

1. Надо найти не "замечательный сайтик", а достоверный источник. И сильно сомневаюсь, что в домене .ru его можно найти....
2. В зависимости от знакомого языка программирования, найти удобную библиотеку для работы с сетевыми запросами.
3. Надо уметь пропарсить входной файл и сформировать вызовы ф-ции, распарсить полученный результат и куда-то его сложить.

Но может быть задача вообще всего этого не стоит? ;-)

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение28.08.2015, 01:28 
Заслуженный участник


06/07/11
3094
Geen в сообщении #1048569 писал(а):
Надо найти не "замечательный сайтик", а достоверный источник. И сильно сомневаюсь, что в домене .ru его можно найти
Сайт утверждает, что данные берет у гугла и яндекса. Я проверил три точки недалеко от дома - похоже на правду.

arseniiv в сообщении #1048565 писал(а):
Что ж, это был GET-запрос
О, раз вы в теме, может, подскажете, что почитать про отладку javascript в браузерах? Не то, чтобы срочно надо, но вдруг вы в курсе.

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение28.08.2015, 01:51 
Заслуженный участник
Аватара пользователя


27/04/09
19376
Уфа
Я как раз в JS близок к нулю, и даже упомянутыми нами всеми «Инструментами разработчика» полноценно пользоваться не умею. Максимум менял стили и смотрел, что получается, а также писал простенький юзерскрипт — скрыватель ненужных элементов на одном сайте (он уже не работает, они снова там всё поменяли). Про отладку не знаю точно.

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение28.08.2015, 10:18 
Заслуженный участник
Аватара пользователя


01/09/13
1258

(Оффтоп)

rockclimber в сообщении #1048587 писал(а):
что почитать про отладку javascript в браузерах?

Там вроде просто всё. Обычный отладчик, ставиться брекпоинт, обновляется страница/нажимается кнопка....


-- 28.08.2015, 10:23 --

rockclimber в сообщении #1048587 писал(а):
Сайт утверждает, что данные берет у гугла и яндекса.

Я так понял, что это относиться к именам объектов.
Просто разрешение, в цифрах близкое к значению высоты, напрягает немного.

 Профиль  
                  
 
 Re: Автозаполнение формы на чужом сайте (ни разу не хакерство :)
Сообщение28.08.2015, 22:55 
Аватара пользователя


12/02/14
11
Граждане, я тут подумкал и решил подсократить свой аппетит в смысле просьбы.
Переформулирую:

Первоначальная задача (для меня) очевидным образом распадается на две:

1) Код ( в js, Delphi или в чём угодно... ), который будет
тупо заполнять поля "долгота" и "широта" на указанном сайте, по нажатию кнопки в этом код

2) Код ( в js, Delphi или в чём угодно... ), который будет
тупо считывать значение из поля "высота" на указанном сайте

Таким образом:
а) у меня перед глазами было бы два окна: этот "чудо-код" и указанный сайт
б) единственным моим участием было бы нажатие на 2 кнопки: в "чудо-коде" и на сайте

Ведь это самомУ нажать на пару кнопок 7292 раза не ахти какой труд, уж как-нить понажимаю :)))
Гораздо муторнее значения вводить каждый раз.

Видимо мне опять кажется, что всё проще, чем на оно есть самом деле,
но тем не менее вопрос в первую очередь по пункту 1)

Насколько реален такой "чудо-код"?
Ежли у кого-то есть решение хотя бы по пункту 1), то был бы благодарен
То есть проблема теперь не в отправке, выполнении и получении ответа на запрос,
а всего лишь в переброске данных с компа на сайт и обратно.

Geen, в вашем списке это цифра 3. , уточнённо и упрощённо
Цитата:
3. Надо уметь пропарсить входной файл и сформировать вызовы ф-ции, распарсить полученный результат и куда-то его сложить.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

Модераторы: Toucan, maxal, Karan, PAV, Супермодераторы



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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group