Форум сайта python.su
здравствуйте. важный вопрос к экспертам - можно ли каким-нибудь образом использовать возможности браузера из питона? нужно выполнить html страницу с javascript на ней и получить результирующий html код. т.е. нужно обойти javascript защиту ) не для спама не бойтесь, а для сбора данных.
без создания графического интерфейса, в конольном приложении (на freebsd).
Отредактировано (Сен. 20, 2010 15:46:34)
Офлайн
Python spider monkey отлично подойдет для выполнения Javascript.
Офлайн
спасибо, только это просто бридж к движку javascrpt, а не то что мне нужно. вот кстати еще был топик http://python.su/forum/viewtopic.php?pid=28293 может кому пригодится, там тоже несколько ссылок, но как получить желаемый результат я не разобрался.
в spidermonkey нельзя скармливать целую html страницу с js и получать результат.
хотелось бы сделать все без заморочек, т.е. скормил html cтраницу, она выполнилась и получил результирующий код. без всяких там парсингов и исполнения js и тд извращений. анализируемые страницы не статичны и настраивать для каждого отдельного случая не получится
Отредактировано (Сен. 22, 2010 16:59:26)
Офлайн
nordmen,
1. что означает «скормил html cтраницу, она выполнилась»
2. Опишите задачу более подробно, возможно вы заранее идете по ложному пути и/или не понимаете проблему.
Офлайн
я понимаю проблему, шас дополню. javascript дописывает кое-что на страницу или загружает с помощью ajax, т.е. мне нужен html который будет в итоге.
вот кстати еще нашел, но только под win32
http://stackoverflow.com/questions/3637681/how-to-parse-a-web-use-javascript-to-load-html-by-python
под дельфями я помню работал с компонентом браузера и были интерфейсы, можно было любые действия выполнять и работать с DOM. нужно примерно тоже самое или просто сразу результирующий html как-то получить.
Отредактировано (Сен. 22, 2010 17:24:45)
Офлайн
nordmen, а не проще ли посмотреть какие AJAX запросы идут и посылать свой такой-же и получать html?
Я проблемы так и не увидел.
Офлайн
нет, я анализирую N сайтов и писать для каждого свои парсеры не удобно. тем более они могут измениться, как и список сайтов я постоянно меняю тк одни могут не обновляться, появляются новые и тд. скрипт по их анализу должен работать автоматически постоянно, а присматривать за каждым анализируемым сайтом постоянно неудобно. лучше сделать что-то универсальное для анализа.
тем более ajax это только на одно сайте, на других шифруют с помощью js.
если эта проблема нерешимая или сложно решимая, то конечно придется искать другие пути решения
вообще если бы была интеграция с каким-нить браузером это была бы очень простая задача намного более простая чем какие-то парсеры писать.
Отредактировано (Сен. 22, 2010 17:41:09)
Офлайн
насколько я понял с помощью PyWebKitGtk это возможно сделать только ковыряться долго. буду пробовать
кстати вот http://python.su/forum/viewtopic.php?id=7484 и http://python.su/forum/viewtopic.php?id=5977 еще буду пробовать сейчас отпишусь если что )
Отредактировано (Сен. 22, 2010 18:37:08)
Офлайн
Можно использовать движок WebKit.
Посмотрите
http://www.aclevername.com/articles/python-webgui/.
http://www.tuxradar.com/content/python-pygtk-webkit-20-minutes
http://blog.chex-its.me/2010/04/webkit-python-html-webkit.html
Отредактировано (Сен. 22, 2010 18:41:22)
Офлайн
сделать что-то универсальное для анализаЭто нереально.
вообще если бы была интеграция с каким-нить браузером это была бы очень простая задача намного более простая чем какие-то парсеры писать.Selenium
Офлайн