Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2016, 20:14   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию Общение с сайтом из программного кода, Питон

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

Вопрос - как? Хотя бы примерно.
Я еще с детских времен наслушался про автокликеров.... Это просто.... Но вот можно ли коду сказать, чтобы он заполнил конкретное окно, нажал на кнопку... Ну конечно можно, автозаполнение капчи то как работает... Вот, разбираюсь...

Последний раз редактировалось Krasi; 12.06.2016 в 20:34.
Krasi вне форума Ответить с цитированием
Старый 12.06.2016, 20:32   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Selenium например если именно с браузером нужно.

Или HTTP снифер (Fiddler или кнопка F12-->Network в любом браузере) и любая библиотека с HTTP клиентом.
Ну и естественно перед этим изучить основы HTTP.

Для капчи есть сервисы типа антигейт. Ну или распознавать картинку, OCR и т.п. если простая.

Но непонятно причем тут оффлайн.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.06.2016, 20:33   #3
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Простите, не офлайн.... Общение с сайтом из питона, или другого языка программирования..
Krasi вне форума Ответить с цитированием
Старый 12.06.2016, 21:09   #4
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Проблема с Selenium для Питона. Я установил все, запустил код без ошибок:
Код:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()
Но firefox в момент открытия выдал ошибку и закрылся. Firefox:
Цитата:
return self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] Удаленный хост принудительно разорвал существующее подключение
Chrome
Цитата:
Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium....omedriver/home
Как сольвануть это?
Krasi вне форума Ответить с цитированием
Старый 12.06.2016, 21:13   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что именно firefox выдал?

Для хрома взять хром вебдрайвер и положить его рядом со скриптом.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.06.2016, 21:17   #6
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

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

Полный лог ошибки Питона:
Цитата:
Traceback (most recent call last):
File "C:/Users/Jenya/Desktop/GTR/Silen.py", line 4, in <module>
driver = webdriver.Firefox()
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\site-packages\selenium\webdriver\firefox \webdriver.py", line 85, in __init__
keep_alive=True)
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\ webdriver.py", line 90, in __init__
self.start_session(desired_capabili ties, browser_profile)
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\ webdriver.py", line 177, in start_session
response = self.execute(Command.NEW_SESSION, capabilities)
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\ webdriver.py", line 234, in execute
response = self.command_executor.execute(drive r_command, params)
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\ remote_connection.py", line 401, in execute
return self._request(command_info[0], url, body=data)
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\ remote_connection.py", line 432, in _request
resp = self._conn.getresponse()
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\http\client.py", line 1174, in getresponse
response.begin()
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\http\client.py", line 282, in begin
version, status, reason = self._read_status()
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\http\client.py", line 243, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "C:\Users\Jenya\AppData\Local\Progr ams\Python\Python35-32\lib\socket.py", line 575, in readinto
return self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] Удаленный хост принудительно разорвал существующее подключение
Я предполагаю, что это может быть из-за того, что при первом запуске Firefox имеет какие-то надстройки, возможно. Отмечу, при выполнении скрипта с Селениум браузер еще ничего не открыл, но уже вылетает... Выдает эксепшн, как бэ

Последний раз редактировалось Krasi; 12.06.2016 в 21:20.
Krasi вне форума Ответить с цитированием
Старый 12.06.2016, 21:47   #7
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

С хромом все ок.
Какой командой ввести текст в поле?

Код:
uname = driver.find_element(By.ID,value="source")
print(uname)

uname.text = "what to put here??"
Поле найдено, все ок, но когда пробую изменить его текст, пишет
Цитата:
uname.text = "what to put here??"
AttributeError: can't set attribute
Krasi вне форума Ответить с цитированием
Старый 12.06.2016, 22:55   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

.send_keys
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 12.06.2016 в 23:07.
Alex11223 вне форума Ответить с цитированием
Старый 13.06.2016, 07:56   #9
kutani
Форумчанин
 
Регистрация: 23.01.2016
Сообщений: 608
По умолчанию

Следует упомянуть, что TC хочет работать с Google Speech Recognition и напрочь игнорирует их API, считая что если будет рулить через браузер, то ограничений не будет )
kutani вне форума Ответить с цитированием
Старый 14.06.2016, 17:08   #10
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Можно и упомянуть. Со Speech Recognition согласен, вот почему мы спорим в ЛС, ок

Последний раз редактировалось Krasi; 14.06.2016 в 17:10.
Krasi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Питон помогите!!! vovuha Python 2 30.01.2015 07:43
Питон-графика goshek Python 3 09.03.2014 07:54
функция-питон goshek Python 1 06.03.2014 10:18
Питон на локалке Mr_freeman PHP 2 06.07.2012 09:38
Системы создания офлайн-форм alc Свободное общение 10 17.05.2012 07:59