:: Visual Foxpro, Foxpro for DOS
автоматизация работы с сайтом.
346
Автор

Сообщений: 142
Откуда: Ростовская обл.
Дата регистрации: 08.09.2006
Есть сайт. Ежедневно нужно вводить некую информацию на сайт. Разработчиком сайта предусмотрен только ручной ввод. возможно ли как то автоматизировать ввод данных. т.е. фокс заходит на страничку сайта в определенных местах вводит данные и нажимает кнопку отправить... Вот уверен что возможно, но как то не приходилось сталкиваться с веб формами. Где почитать?
Вот читаю про Фундаментальный класс Web Browser Control. Хоть в правильном направлении иду...?



Исправлено 1 раз(а). Последнее : 346, 10.02.20 22:41
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Обычно смотрят какие запросы отсылает страница (в самом простом варианте это будет POST отсылка данных формы) и именно их и делают. А "кнопки" и "поля ввода" в браузере никто не трогает.
Запросы проще всего отследить в инструментах разработки встроенных в сам браузер. F12 и вперёд.
Конечно, это на тот случай если разработчик этого сайта дурак или жмот, и не предоставляет того что называется WebAPI - когда безо всяких веб-страниц можно посылать HTTP запросы с данными.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
346
Автор

Сообщений: 142
Откуда: Ростовская обл.
Дата регистрации: 08.09.2006
Спасибо! Но какими средствами отправлять команды? через методы Web Browser Control? Ну вот например открыть страницу через метод .navigate() это проходит а далее как данные отправить и потом еще окно подписания выходит надо нажать кнопку подписать....?ну вот допустим отправляю
thisform.olecontrol1.navigate('https://forum.foxclub.ru/posting.php?29,edit,82366')
да открывается для редактирования это сообщение, не пойму как изменить текст. И как сохранить изменения? Как то надо обратится к конкретному полю страницы, внести данные.....


Исправлено 5 раз(а). Последнее : 346, 11.02.20 23:46
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
346
Но какими средствами отправлять команды? через методы Web Browser Control?

Нет.
Поищи на форуме (и в Гугле) темы по работе с объектом на основе MSXML2.XMLHTTP.
Можно и о WinHttp.WinHttpRequest.



Исправлено 2 раз(а). Последнее : akvvohinc, 12.02.20 00:58
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Чтобы "посниферить" (посмотреть, какие запросы шлет браузер, выполняя скрипт странички, на сервер, и чем сервер ему отвечает) надо добиться вот такой картинки в отладчике IE, например - F12, и в других браузерах тоже. В F12 открывай закладку Networks, на собственно страничке нажми кнопку "выполнить запрос" (или какая там), и смотри, что послал браузер (Get или Post метод, URL, заголовки Headers, Responce - ответ сервера). Потом такое же будешь посылать из MSXML2.XMLHTTP

monosnap.com

Доб.
> не пойму как изменить текст. И как сохранить изменения? Как то надо обратится к конкретному полю страницы, внести данные.....

На форуме где-то было подобное. так не делал ни разу, но, вроде, наблюдаешь документ (страницу браузера) в DOM-виде, в нужные элементы записываешь значения (читать-то .Text ихз элементов можно, почему бы не записать, вдруг так можно), потом нечто похожее на .Click главной кнопки (Submit формы ?) - вот и послал. В ответ читаешь новую страницу, разбираешь ее, также в DOM-виде... Что-то такое.

Разбор ответа сервера, кстати, самое неприятное, ведь сервер посылает в ответ страничку для визуального наблюдения, а не для компа. Т.е. всякий HTML-мусор, включая счетчики посещений, рекламу, приветы от сайта, периодические изменения (на сервере же тоже прогеры тоже сидят, перекрашивают, меняют движки)



Исправлено 1 раз(а). Последнее : of63, 12.02.20 17:26
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
346
Автор

Сообщений: 142
Откуда: Ростовская обл.
Дата регистрации: 08.09.2006
Спасибо! немного прояснилось, но пока хожу в потемках. Читаю инфу надеюсь добьюсь просветления.
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Возьми для примера простой сайт (не загруженный картинками), и помучай. Может и твой подойдет. Если сайт не секретный и общедоступный, то давай ссылку.
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
работаю с сайтом, мне дают, что по Get, Put и Post могу иметь.
Мне пишут как.
И помогают в отладке. Весь мой опыт небольшой.
А чего я должен посниферить? Не пойму.
Кого то взломать?



Исправлено 1 раз(а). Последнее : Ydin, 13.02.20 00:02
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
of63
Если сайт не секретный и общедоступный, то давай ссылку.
Разреши, воспользуюсь твоим предложением.

Вот с этого сайта хотелось бы забирать данные - те, что показывает браузер.
Когда-то с ним проблем не было, но пару лет назад они что-то переделали, и "старая прога" данные читать перестала, и руки никак не доходят разобраться - пробовал, но с наскока не получилось, видимо, не хватает опыта.
С тех пор сохраняю страницу из браузера, а потом уже читаю.

Если получится, то хотелось бы ответ в виде рабочего куска кода, читающего данные, скажем, по такой ссылке:
www.fis-ski.com



Исправлено 1 раз(а). Последнее : akvvohinc, 13.02.20 00:52
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Давай сначаоа ТС удовлетворим

> Если получится, то хотелось бы ответ в виде рабочего куска кода, читающего данные, скажем, по такой ссылке:
www.fis-ski.com

ты видишт все циферки... ы хосчешь читать элементы таблички? (Эьолм ожг, пьян )



Исправлено 1 раз(а). Последнее : of63, 13.02.20 03:22
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
of63
Давай сначала ТС удовлетворим
Встаю в очередь прямо за ним!

of63
ты видишь все циферки
В браузере циферки есть, но получаются они "динамически", и добраться до них через "поснифферить" мне, когда я пробовал это последний раз (перед началом прошлого зимнего сезона), не удалось.
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Это, конечно, прекрасно, когда люди в очередях стоят... Попоздее смогу удовлетворить (
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Сергей, чтобы не динамить, пока положу "код" (из двух строк, который возвращает DOM-обьект из HTML-текста, т.е идея разбора твоего сайта проста... должна быть (надо все конечно, пройти, может он динамически подгружаемый при листании, хз.

Жирным в коде выделены эти 2 строки, остальные - борьба с счетчиками и антивирусней. Переменная m.r - это HTML-текст




Исправлено 1 раз(а). Последнее : of63, 14.02.20 19:57
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
of63
Сергей, чтобы не динамить, пока положу "код" (из двух строк, который возвращает DOM-обьект из HTML-текста, т.е идея разбора твоего сайта проста... должна быть (надо все конечно, пройти, может он динамически подгружаемый при листании
Олег, спасибо!
Но задача разбора текста передо мной не стоит - она в том, чтобы прочитать страницу с указанным URL так, чтобы в результате там было всё, что отображается в браузере.

То есть для твоего примера - мне нужно получить переменную m.r, а что с ней делать - давно сделано.
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
И в чём проблема получить HTML текст этой страницы к примеру через MSXML2.XMLHTTP? Там прямо прописаны данные этой таблицы, без дополнительных запросов и прочего - остаётся только распарсить.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
Igor Korolyov
И в чём проблема получить HTML текст этой страницы к примеру через MSXML2.XMLHTTP?
Может, проблем и нет.

Я посмотрел, что у меня там использовалось для чтения этого сайта, и оказалось, что этот кусок был написан на Питоне (и когда-то он работал). А позже и сейчас выдается:
Connection error (0): [url]https://www.fis-ski.com/DB/general/results.html?sectorcode=AL&raceid=95531[/url]
[Errno 1] _ssl.c:392: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

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

Ясно, что ошибка не в самой проге, а возникает где-то в недрах его библиотек, но что и где надо поправить?
Помощники из Гугла советуют просто обновить версию Питона, но это потянет за собой кучу других проблем (несоответствие версий библиотек), которые я сам решить вряд ли быстро смогу.

Так что до поры до времени я об этом решил просто "забыть", но Олег предложил - я и вспомнил об этой проблеме.
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Сергей, если не трудно будет - выкладывай и готовый код реализации - многим коллегам дни сэкономишь на том же самом.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
sphinx
Сергей, если не трудно будет - выкладывай и готовый код реализации - многим коллегам дни сэкономишь на том же самом.
Так я же написал, что у меня на Фоксе реализации нет.

Ну, хорошо, переношу тот код с Питона (а фактически это только строка заголовка) на Фокс и прогоняю на 4 сайтах:
CLEAR
CREATE CURSOR curl (url M,parm M,f_write L)
INSERT INTO curl VALUES('https://yandex.ru','',.F.)
INSERT INTO curl VALUES('https://www.betexplorer.com/soccer/russia/premier-league','',.F.)
INSERT INTO curl VALUES('http://www.fc-dynamo.ru/eurocup/rezult.php',;
'vk=%C0%C1+%28%C4%E0%ED%E8%FF%29&vs=&skm=&ssp=&kb=&gd=&ch=&ms=&gdd=&dn=&dv=&zb=&pr=&vy=on&ny=on&po=on',.F.)
INSERT INTO curl VALUES('https://www.fis-ski.com/DB/general/results.html','sectorcode=JP&raceid=5585sectorcode=JP&raceid=5585',.F.)
req = CREATEOBJECT('Msxml2.XMLHTTP')
SELECT curl
SCAN
? ALLTRIM(curl.url)
req.Open("POST",curl.url,.T.)
req.setRequestHeader('Content-Type', 'text/html; charset=UTF-8')
req.Send(curl.parm)
DO WHILE req.readyState!=4
IF INKEY(0.1)=27
EXIT
ENDIF
DOEVENTS FORCE
ENDDO
? 'Status = '+TRAN(req.status)
? 'Length = '+TRAN(LEN(req.responsetext))
? 'Text = '+SUBSTR(req.responsetext,1,100)
? '--------------------------'
?
IF curl.f_write
* по желанию - запись результата в html-файл в текущую папку для проверки
= STRTOFILE(req.responsetext,TRAN(RECNO())+'.html')
ENDIF
ENDSCAN

На одной из них страница прочиталась (та, что была с http), на других - нет.
Яндекс хоть что-то написал, еще два вернули пусто.

А теперь пусть знающие люди скажут, что надо поправить или чем дополнить этот код (заголовки?), чтобы и остальные сайты прочитались "как в браузере".



Исправлено 5 раз(а). Последнее : akvvohinc, 15.02.20 05:05
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
mеdstraх

Сообщений: 275
Дата регистрации: 25.01.2020
akvvohinc
что надо поправить или чем дополнить этот код (заголовки?), чтобы и остальные сайты прочитались "как в браузере".
Капча?
Ratings: 0 negative/0 positive
Re: автоматизация работы с сайтом.
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
mеdstraх
Капча?
Отсутствует.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 36 (Гостей: 36)

© 2000-2024 Fox Club 
Яндекс.Метрика