Russian Qt Forum

Разное => Говорилка => Тема начата: Bepec от Июнь 26, 2014, 17:11



Название: [Решено]Автоматизация, javascript, flash. Вопрос по утилитам...
Отправлено: Bepec от Июнь 26, 2014, 17:11
Вопрос - как можно автоматизировать действия в такой связке?

Имеется сайт в котором авторизация post, переход по категориям в виде простых ссылок, а вот внутри валяется javascript и красочно всё бегает вылезает отражается перемешивается.

Хочу вместо каждодневной мороки аля "зайти на сайт, ввести пароль, перейти в категории, далее восемь кликов пока доберёшься до нужных индикаторов и только тогда можно увидеть их параметры" автоматизировать сей процесс с выводом в текстовичок  и запуском анализа.  

Есть ли инструменты для такой работы? Причём именно для полностью автоматической работы?

update: или хотя бы инструменты облегчающие работу, аля вытаскивали к примеру элемент, над которым мышка, его параметры и, к примеру, позволяли импортировать эти данные. А то в том коде, пропущенном через эмм.. забыл как называется - меняются имена переменных на непроизносимые названия, равно как и имена ф-ций и прочая.

update: Наиболее удобная утилита для автоматизации
http://jeanphix.me/Ghost.py/
Итого - ghost

Нужно:
1) PyQt и Python одной версии (допустим 3.4) и одинаковой разрядности.
2) установить ghost командой
pip install --pre Ghost.py (для python 2.7 pip собрать надо отдельно)



Название: Re: Автоматизация, javascript, flash. Вопрос...
Отправлено: alex312 от Июнь 26, 2014, 19:40
http://jeanphix.me/Ghost.py/
https://github.com/makinacorpus/spynner

или самому что-то написать с использованием QtWebKit.


Название: Re: Автоматизация, javascript, flash. Вопрос...
Отправлено: Bepec от Июнь 26, 2014, 20:41
Благодарю за ссылки, но если можно маааленький вопрос.
У вас ghost то хоть работает? А то я уже перебрал версии pyhton'a, для которых он подходит, под конец плюнул на pip, нашёл где то сам, скачал, установил. Плюется и не хочет импортироваться.
Код:
>>> from ghost import Ghost
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name Ghost


Название: Re: Автоматизация, javascript, flash. Вопрос...
Отправлено: vregess от Июнь 27, 2014, 08:59
Есть еще selenium.


Название: Re: Автоматизация, javascript, flash. Вопрос...
Отправлено: Bepec от Июнь 27, 2014, 09:28
selenium мне нравится. Понятнее и ближе как виндузятнику :) Благодарю откликнувшихся.
Но если есть ещё что то - велком, у меня благодарности на всех хватит :)


Название: Re: Автоматизация, javascript, flash. Вопрос...
Отправлено: alex312 от Июнь 27, 2014, 10:21
У вас ghost то хоть работает?
Да, работает.
Установил  командой
Код:
pip install --pre Ghost.py
Ghost установился и под 2.7 и под 3.4.1 .   (pip для 2.7 я устанавливал отдельно)
для работы ghost требует PyQt4. поэтому более-менее проверил под 2.7 .
Результат: http://google.com  открывает, страничку в Pdf сохраняет.


Название: Re: Автоматизация, javascript, flash. Вопрос...
Отправлено: Bepec от Июнь 27, 2014, 12:33
Вечером попробую, отпишусь что получится :)

update: всегда ненавидел с новым разбираться :) не изучать, а именно разбираться.

Итого - ghost

Нужно:
1) PyQt и Python одной версии (допустим 3.4) и одинаковой разрядности.
2) установить ghost командой
Код:
pip install --pre Ghost.py

Что осталось выяснить:
почему при тестовом скрипте и любом исходе python.exe крашится с ошибкой в python34.dll.

Минимальная программа для креша
Код:
from ghost import Ghost
ghost = Ghost()
page, extra_resources = ghost.open("http://www.prog.org.ru/")

Выполняется вся программа, делает скриншот, но крашится. Что за фигня? :)


Название: Re: Автоматизация, javascript, flash. Вопрос...
Отправлено: Bepec от Июль 01, 2014, 15:53
up...


Название: Re: Автоматизация, javascript, flash. Вопрос...
Отправлено: alex312 от Июль 02, 2014, 08:13
проблему подтверждаю.
Но все нормально завешается если не вызывать метод open("http://.....")
Наверное потом неправильно удаляются обьекты.

Надо попробовать открыть страницу при помощи PyQt4.


Название: Re: Автоматизация, javascript, flash. Вопрос...
Отправлено: Bepec от Июль 02, 2014, 10:39
А самое странное что при открытии нескольких страниц, оно рандомно не крашится...
В общем непонятно и печально, я надеялся на вас :D

Времени самому разбираться не особо, потому просто заигнорил окно с ошибками.

И да, итог всей темы - ghost наиболее удобная вещь для автоматизации. Имеет легко описываемую логику, хотя парочка проблем ещё есть:
1) вылет при окончании программы (рандомный, причем возвращает C000005 ошибку :) )
2) при переходе внутри сайта... ммм... например с site.com/aqua на site.com/fire вылетает с ошибкой - таймаут загрузки страницы. Непонятно отчего, но лечится отключением ожидания загрузки у метода open.


Название: Re: [Решено]Автоматизация, javascript, flash. Вопрос по утилитам...
Отправлено: alex312 от Июль 02, 2014, 12:29
Немного погуглил, проблема общяя для PyQt

небольшое гугление вывело меня та возможное решение проблемы  -
http://stackoverflow.com/questions/21713682/pyqt-occasional-segfaults-when-using-qapplication-quit
https://github.com/integricho/path-of-a-pyqter/tree/master/qttut08


Название: Re: [Решено]Автоматизация, javascript, flash. Вопрос по утилитам...
Отправлено: Bepec от Июль 02, 2014, 14:33
Суть да дело описано вот тут http://habrahabr.ru/post/210304/.
Кстати да, под дебагом всё нормально работает, увы.

Но с нахрапу разобраться не получилось, устраивает то что есть. (таки и не смог я извлечь стек вызовов питона. )
Благодарю всех отписавшихся.