PyQtWebkit и Java-скрипт - PullRequest
       21

PyQtWebkit и Java-скрипт

0 голосов
/ 02 октября 2010

У меня есть страница с JS.Мне нужно получить дом после JS выполнить на веб-странице.Js вставляет текст в div с именем 'sdl'.Мне нужно получить значение между.Значение не может быть проанализировано в js source, оно генерируется Js.Как это сделать?Извините за мой английский.

Ответы [ 2 ]

1 голос
/ 03 октября 2010

DOM выставлен (по крайней мере в pyqt> = 4.7.4)

document = webview.page().currentFrame().documentElement()
document.findAll("a") 
...

http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qwebframe.html

http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qwebelement.html

0 голосов
/ 06 августа 2012

В Python вы можете использовать Ghost , который является открытым исходным кодом и доступен с github. Это оболочка Python для хака PyQt4 + WebKit, которая работает довольно хорошо. Вы можете просто сделать

import ghost
g = ghost.Ghost()
g.open('http://stackoverflow.com/')

Теперь g.content относится к документу пост-рендеринга.

Вы также можете оценить JS в документе с помощью метода evaluate, и он вернет значения JS.

Ghost также довольно легко раскрывает объекты PyQt, так что вы можете делать вещи с Ghost объектом, который Ghost не реализует, и он будет проходить через него.

Не могу точно вспомнить, но думаю, что-то вроде

g.main_frame.setContent('<b>Hello World</b>')

можно использовать для установки документа, а

g.content = '<b>Hello World</b>'

бросает один. Требуется некоторое укрощение, но это не займет много времени, чтобы заставить его работать так, как вы хотите.

Документы Ghost - отстой, но источник - единственный файл и довольно объяснительный. Я использую Ghost, и это нормально. Только не создавайте более одного Ghost объекта, иначе он может привести к краху всего.

...