西西河

主题:有个智能浏览器的专利,找人一起整 -- 统领

共:💬44 🌺27
全看分页树展 · 主题 跟帖
家园 用其他语言实现起来也很简单啊

至少我在PyWebkit里面能很容易地做到:

先定义这三个辅助函数:

def _find_element(br, str):

return br.page().mainFrame().findAllElements(str)[0]

def _click(element):

element.evaluateJavaScript("var evObj = document.createEvent('MouseEvents');evObj.initEvent( 'click', true, true );this.dispatchEvent(evObj);")

def _capture(br):

img = QImage(br.page().viewportSize(), QImage.Format_ARGB32)

painter = QPainter(image)

br.page().mainFrame().render(painter)

painter.end()

img.save("output.png")

然后也是四行:

br.load(URL)

_find_element(br, "input[id=text]").setAttribute("value", TEXT)

_click(_find_element(br, "input[id=submit]"))

_capture(br)

也是几分钟的事情,实在是平平无奇啊。如果要让网页做到这些,用我之前提到的bridge方法,把python解释器的exec()函数暴露给网页的javascript环境就行了(没有多少代码,但是没人做,原因是很不安全),然后网页里面就可以插入最简单的javascript:

zBrow("br.load(URL)");

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河