Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Возможно ли это сделать?  (Прочитано 18683 раз)
0 Пользователей и 1 Гость смотрят эту тему.
v0ffka
Гость
« : 23-09-2009 17:28 » 

Добрый день, уважаемые форумчане. Возник вопрос и нужен совет:
Допустим, есть страница сайта (разработанного не мной и доступа к нему как админ тоже нет) http://www.example.com/blabla/blabla.html на этой странице имеется 2 текстовых поля для поиска информации по уникальному значению, например,

Уникальный номер ДПФО(12 цифр) ----  [тут текстовое поле         ]
Еще один уникальный номер           ----- [тут тоже текстовое поле]
                                                                      
                                                                  [кнопка поиска]

Соответственно, мы вводим в любое из полей и жмем кнопку поиска, в результате чего браузер выдает нам ответ, есть ли значения по данному ключу. Если бы номеров было всего лишь 2-3, это можно было бы сделать и вручную, однако их очень много, порядка 500 штук. Скажите, пожалуйста, можно ли автоматизировать этот процесс, т.е. мне необходимо разработать программу, которая автоматически вносила бы значения в поле Уникальный номер ДПФО(12 цифр), номера эти хранятся в .xml формате и, соответственно, анализатор, который бы проанализировал результат и сохранил их в БД.
Возможно ли это сделать? Если да, то какими библиотеками пользоваться??? В общем, куда надо копать, подскажите, пожалуйста.....
« Последнее редактирование: 23-09-2009 17:54 от Sel » Записан
zubr
Гость
« Ответ #1 : 23-09-2009 17:39 » 

Если не надо вводить капчу, то легко, используя COM-объектную модель IE. Смотреть в сторону COM-интерфейсов IWebBrowser2, IHTMLDocument2, IHTMLElement.
Записан
v0ffka
Гость
« Ответ #2 : 23-09-2009 17:44 » 

А используя библиотеку WinInet, просмотрел по googl-y возможно с ней это сделать?
Записан
zubr
Гость
« Ответ #3 : 23-09-2009 18:00 » 

Можно, только работы больше будет, так как самому придется организовывать получение-передачу данных.
Записан
v0ffka
Гость
« Ответ #4 : 23-09-2009 18:08 » 

А скажите пожалуйста, эти COM интерфейсы что Вы указали (IWebBrowser2, IHTMLDocument2, IHTMLElement) их все необходимо изучить или же нет?
Записан
zubr
Гость
« Ответ #5 : 23-09-2009 18:25 » 

В принципе можно еще проще. Для Builder (C++, Delphi) использовать компонент TWebBrowser (метод Navigate, событие OnDocumentComplete), для VS C++ можно использовать MFC-класс CHtmlView - методы и события те же.
Алгоритм:
1. в методе Navigate передаешь URL и POST-данные
2. в событии OnDocumentComplete определяешь, что документ загрузился
3. Через свойство Document получаешь интерфейс IHTMLDocument2
4. Через IHTMLDocument2::Body::innerText полчаешь текст в  пределах тегов <body>
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #6 : 23-09-2009 19:44 » 

Нифига не понял. Что значит "браузер выдает нам ответ, есть ли значения по данному ключу." ?
Эти данные локально хранятся, а бразуер используется в качестве удобной оболочки? Или же всё-таки после нажатия на кнопку посылается запрос серверу и с него приходит ответ?
Я думаю всё-таки второе, так нафига париться с браузером? Надо просто отправить запрос, принять ответ и распарсить его и сделать с данным всё что захочешь. Нафига вводить чего-то куда-то?

Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
zubr
Гость
« Ответ #7 : 23-09-2009 20:17 » 

Джон, ему надо автоматизировать процесс отправки запроса и проверки полученных данных.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #8 : 23-09-2009 21:38 » 

Ну и чем "мой" метод противоречит этому условию? Открывай XML, итерируй все ключи, формируй запрос, отправляй, получай, анализируй. Зачем обязательно из браузера отправлять? Я просто не понимаю нафига возиться с какими-то окошками? Зачем вобще запускать браузер, вместо того чтобы просто отправить запрос и получить ответ? Не ну если хочется посложней...  Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
zubr
Гость
« Ответ #9 : 24-09-2009 03:27 » 

Джон, как я понимаю ты имеешь в виду отправлять запрос и получать ответ с сервера ты предлагаешь с использованием WinInet?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #10 : 24-09-2009 06:41 » 

Я не предлагаю использовать что-то конкретное для отправки запроса, это не имеет значения, любое доступное средство подойдёт. Я имею ввиду отправлять запрос минуя работу с браузером и с окошками ввода. Собственно говоря отойти от догмы:

мне необходимо разработать программу, которая автоматически вносила бы значения в поле Уникальный номер ДПФО(12 цифр)


Такое решение оправдывает себя ТОЛЬКО в том случае, когда создана своя оболочка и необходимо тестировать её контролы. А запрос это в конечном итоге URL с навешаными параметрами, которые в данном случае напрямую поступают из XML файла. Вот и всё. А отправлять его можно используя любые доступные методы, хоть сокеты.

Хотя вобще-то после:

А скажите пожалуйста, эти COM интерфейсы что Вы указали (IWebBrowser2, IHTMLDocument2, IHTMLElement) их все необходимо изучить или же нет?

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

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
zubr
Гость
« Ответ #11 : 24-09-2009 06:46 » 

Джон, в случае использования WebBrowser речь не идет о том, что надо использовать его окошки. Его вообще можно сделать невидимым. От броузера можно использовать метод Navigate (отправка данных на сервер) и событие OnDocumentComplete (получение результата запроса с сервера). То есть эти функции не надо будет реализовывать самому, так как это уже делает броузер.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #12 : 24-09-2009 07:44 » 

Это хорошо, что не идёт. Просто после такой формулировки нигде явно об этом не говорилось. Я могу себе представить, что новичок именно так и видит задачу - курсор мышки навёлся на окошко ввода, клик, на клаве нажимаются кнопки, Enter.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
zubr
Гость
« Ответ #13 : 24-09-2009 09:27 » 

Хмм... Я вроде в своем ответе https://forum.shelek.ru/index.php/topic,21838.msg215057.html#msg215057 описал алгоритм использования WebBrowser для данной задачи, где тут клики по клаве?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #14 : 24-09-2009 09:37 » new

А где я говорю (критикую, не согласен и тп) про описаный тобой в #5 метод?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines