Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 6, 2008 02:44:11

sidor
От:
Зарегистрирован: 2008-01-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

Нужно выполнить джаваскрипт на питоне. Кто чем пользуется для этого ? Если кроме spydermonkey ничего нет, то может подскажете где взять готовые модули, которые не нужно компилировать. Есть модуль DOMForm, он для работы требует установки pyXML, но этот модуль собранный есть только для питон 2.4, а для 2.5 не устанавливается. Кто пользовался DOMForm подскажите как и что устанавливали.

Задача у меня такая: заполнить и отправить web-форму, в которой часть данных генерится налету джаваскриптом.
Ось у меня: Windows
Python 2.5 взят с python.org
может ктото пользовался ActivePython и раскажет чтото про его полезные фичи (например win32com по умолчанию) - буду токо рад

Помогите. Я на питоне программирую недавно - может не там ищу или чегото не понимаю, но мне кажется что если на питоне написан броузер то он наверняка выполняет JS, а значит уже чтото написано для этого.

Спасибо.



Офлайн

#2 Янв. 7, 2008 01:53:18

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

sidor
Нужно выполнить джаваскрипт на питоне. Кто чем пользуется для этого ? Если кроме spydermonkey ничего нет, то может подскажете где взять готовые модули, которые не нужно компилировать. Есть модуль DOMForm, он для работы требует установки pyXML, но этот модуль собранный есть только для питон 2.4, а для 2.5 не устанавливается. Кто пользовался DOMForm подскажите как и что устанавливали. Задача у меня такая: заполнить и отправить web-форму, в которой часть данных генерится налету джаваскриптом.
Ось у меня: Windows
Python 2.5 взят с python.org
Не совсем понятно что значит “выполнять джаваскрипт на питоне”. Точнее совсем не понятно, по крайней мере мне. Если вам нужно сделать что-то до отправки - сделайте это питоном. Если все будет генерится джаваскриптом в браузере - то отпрявьте джаваскрипт браузеру. Так что проблема вообще не понятна. Ну и есть еще JSON для обмена данными з джаваскриптом…
sidor
может ктото пользовался ActivePython и раскажет чтото про его полезные фичи (например win32com по умолчанию) - буду токо рад
Пишите пожалуйста конкретнеее что Вас интересует. Я пользуюсь ActivePython, но не перказывать же Вам справку. Так книгу написать можно.
sidor
Помогите. Я на питоне программирую недавно - может не там ищу или чегото не понимаю, но мне кажется что если на питоне написан броузер то он наверняка выполняет JS, а значит уже чтото написано для этого.
Скорее всего чего-то не понимаете. Напишите конкретно что у Вас есть и что Вы хотите сделать, и Вам обязательно помогут.

Офлайн

#3 Янв. 7, 2008 18:19:41

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

Все равно ничего не понял. Зачем выполнять JavaScript питоном если все можно написать на питоне?

Офлайн

#4 Янв. 8, 2008 11:00:24

sidor
От:
Зарегистрирован: 2008-01-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

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

Потому и обращаюсь: может есть еще какойто способ.



Офлайн

#5 Янв. 8, 2008 11:07:50

sidor
От:
Зарегистрирован: 2008-01-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

Может я действительно не до конца обрисовал ситуацию. Обрисовываю :).
Есть мой скрипт написанный на питоне. Этим скриптом я обращаюсь на URL и получаю страницу. На этой странице есть джаваскрипт. Например этот джаваскрипт выполняет редирект или генерирует какуюто инфу в поле ввода формы - я этого повторить не могу если не могу выполнить тот же скрипт. Поэтому и появляется необходимость научиться выполнять джаваскрипт.



Офлайн

#6 Янв. 10, 2008 08:56:15

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

sidor
сть мой скрипт написанный на питоне. Этим скриптом я обращаюсь на URL и получаю страницу. На этой странице есть джаваскрипт. Например этот джаваскрипт выполняет редирект или генерирует какуюто инфу в поле ввода формы - я этого повторить не могу если не могу выполнить тот же скрипт. Поэтому и появляется необходимость научиться выполнять джаваскрипт.
лично мне не понятно зачем тебе это нужно - цели не видно.
Если хочешь переписать код с js на python - сделай это руками, а если не знаешь JS - выучи основы.



Отредактировано (Янв. 10, 2008 08:56:37)

Офлайн

#7 Янв. 10, 2008 11:03:19

ods
От:
Зарегистрирован: 2007-03-03
Сообщения: 47
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

pythonwin
лично мне не понятно зачем тебе это нужно - цели не видно.
Очень интересная задача, и мне бы тоже хотелось получить для неё решение. Предназначение понятно - эмулировать работу в браузере, как это делает mechanize, но не ограничиваясь одним HTML, как будто JS в браузере отключен. Нужно это во многих случаях, например для автоматизированного тестирования без запуска браузера.
А вот формулировка задачи неполная: кроме выполнения JS на питоне ещё нужно сделать доступным DOM текущей (а, возможно, и вновь создаваемых, родительской и т.д.) страницы и другие объекты, доступные в JS в браузере.



Офлайн

#8 Янв. 10, 2008 11:15:34

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

ods
эмулировать работу в браузере,
вроде же есть браузеры на питоне - на promsoft.ru видел. думаю нужно просто попробовать её API - может и получиться.



Офлайн

#9 Янв. 10, 2008 16:55:04

Esh
От:
Зарегистрирован: 2007-04-11
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

sidor
Может я действительно не до конца обрисовал ситуацию. Обрисовываю :).
Есть мой скрипт написанный на питоне. Этим скриптом я обращаюсь на URL и получаю страницу. На этой странице есть джаваскрипт. Например этот джаваскрипт выполняет редирект или генерирует какуюто инфу в поле ввода формы - я этого повторить не могу если не могу выполнить тот же скрипт. Поэтому и появляется необходимость научиться выполнять джаваскрипт.
Для этого есть готовые automation test tools. Их много, обычно это дорогие продукты, хотя есть и Free. Они эмулируют работу пользователя. В данном случае, работают с браузером. Кликают, заполняют поля и т.д. У меня на работе это используется для тестирования приложений, в том числе и web.

Но тут другая проблема, эти программы работают только с элементами пользовательского интерфейса. Если нужно отследить какой-то HTTP запрос, который создал javascript в браузере, одних элементов UI не хватит.



Офлайн

#10 Янв. 11, 2008 07:58:11

Nbush
От:
Зарегистрирован: 2007-05-28
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение Javascript на Python

sidor
Хочется получить решение которое будет работать естественным путем: выполнять тот же жаваскрит.
Полноценной реализации выполнения JavaScript на python нет (на данный момент). Используйте автоматизацию IE, например модуль PAMIE.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version