一键重装系统工具 | U盘启动盘制作工具 | 误删文件恢复软件 | 硬盘数据抢救专家 | 电脑蓝屏修复助手 | C盘空间清理神器 | 电脑驱动离线安装工具 | 微信聊天记录恢复工具 | 照片误格式化恢复 | 电脑密码破解清除工具 | 系统崩溃紧急救援盘 | 电脑加速优化大师 | 电脑开不了机怎么重装系统 | 回收站清空了怎么恢复 | 硬盘分区丢失数据恢复 | 电脑卡顿重装系统有用吗 | U盘插入提示格式化数据恢复 | 电脑中毒文件被隐藏恢复 | 忘记电脑开机密码怎么办 | 新硬盘分区对齐工具 | 旧电脑装Win10流畅工具 | SD卡照片删除恢复免费版 | 移动硬盘打不开提示损坏修复 | 电脑无故重启系统修复工具 | 电脑小白一键重装神器 | 程序员电脑环境配置助手 | 设计师电脑字体/素材恢复工具 | 网吧网管系统维护工具箱 | 财务人员电脑发票备份恢复 | 学生党免费电脑系统安装包 | 电脑维修师傅必备工具盘 | 游戏玩家电脑性能优化助手 | 办公白领误删文档恢复软件 | 自媒体视频素材恢复工具 | 网课录制视频损坏修复工具 | 最好的U盘PE系统排名 | 数据恢复软件哪个最强 | 免费电脑助手与收费版区别 | 国产装机工具哪款无广告 | 离线版驱动助手推荐 | 轻量级电脑优化工具对比 | 支持NVMe驱动的PE工具 | 带网络功能的应急启动盘 | 2026最新版万能装机工具 | 支持Win11 24H2的PE工具 | 最新免激活系统重装工具 | 2026数据恢复软件破解版合集 | 纯净无捆绑装机助手V3.0 | 支持苹果M芯片的电脑助手 | 秋季更新版系统维护工具箱 | 电脑系统崩了怎么用U盘把重要资料拷贝出来 | 重装系统前哪些文件夹必须备份 | 固态硬盘误格式化还能恢复数据吗 | 如何制作一个既带PE又能存数据的双分区U盘 | 电脑总是弹窗广告用什么助手彻底拦截 后台管理
📢 欢迎访问系统之家!所有资源均经过安全检测。

WebBrowserProgramming

发布时间:2026-09-15 | 浏览:1
📥 下载地址(文章开头)
一键制作系统U盘仅需下载到电脑后接上U盘点一下全自动完成。
Web Browser Programming in Python TODO: merge in and research these, found on comp.lang.python Yes, Python can do it... on Windows. Two (examples) ways: ActiveScripting ( PythonScript ), included in PyWin32 Gestalt (who mix Python, Ruby & JavaScript , via Silverlight) TODO: Add mention of IPython Notebook which can be run remotely, easily on AWS, and used within your browser. The HTML client can also interact with JavaScript and DOM, though this feature isn't quite merged yet. There's a lot being done on it, but it's already being used and probably should be mentioned here. This topic covers ways in which python can be used in web browsers to control, create or manipulate the content within a user's web browser, or a web-based technology (such as WebKit , the technology behind Safari, Midori, the OLPC Browser, Adobe AIR, Google Chrome and much more; XULrunner (the engine behind Firefox and much more); MSHTML (the engine behind IE and much more ); and KDE's KHTMLPart. To clarify what type of technology goes onto this page, some examples of types of technology that can and cannot be added to this section: Specifically excluded from the list is technology that simply generates static HTML content. So, an HTML pretty-printer library, as the resultant HTML simply uses the browser for "display" purposes rather than using the browser as an "application execution environment", is out. Such technologies can instead be found at WebClientProgramming . Plugins for Web Browsers that provide direct access to the DOM model of the web browser. In exactly the same way that most web browsers have JavaScript by default as a language that can directly access the DOM model of the web browser, a plugin or other system that can do the same thing (with Python using <script type="text/python" /> instead of JavaScript using <script language="javascript" /> ) should be listed on this page. Python-based technology that auto-generates or compiles JavaScript definitely counts, as the resultant JavaScript would be executed by the web browser. Technology that simply uses JavaScript or depends on JavaScript libraries (such as mochikit, extjs or prototype) does not count, but a Python-based wrapper library around a JavaScript engine definitely counts. This latter example requires some further explanation: Pyjamas, for example, is a Python-to- JavaScript compiler that can include inline JavaScript . So, although the input to Pyjamas is part Python, part JavaScript , the output is pure JavaScript that runs in a web browser, and so any such "mixed" language libraries should be included on this page. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. TODO: merge in and research these, found on comp.lang.python Yes, Python can do it... on Windows. Two (examples) ways: ActiveScripting ( PythonScript ), included in PyWin32 Gestalt (who mix Python, Ruby & JavaScript , via Silverlight) TODO: Add mention of IPython Notebook which can be run remotely, easily on AWS, and used within your browser. The HTML client can also interact with JavaScript and DOM, though this feature isn't quite merged yet. There's a lot being done on it, but it's already being used and probably should be mentioned here. This topic covers ways in which python can be used in web browsers to control, create or manipulate the content within a user's web browser, or a web-based technology (such as WebKit , the technology behind Safari, Midori, the OLPC Browser, Adobe AIR, Google Chrome and much more; XULrunner (the engine behind Firefox and much more); MSHTML (the engine behind IE and much more ); and KDE's KHTMLPart. To clarify what type of technology goes onto this page, some examples of types of technology that can and cannot be added to this section: Specifically excluded from the list is technology that simply generates static HTML content. So, an HTML pretty-printer library, as the resultant HTML simply uses the browser for "display" purposes rather than using the browser as an "application execution environment", is out. Such technologies can instead be found at WebClientProgramming . Plugins for Web Browsers that provide direct access to the DOM model of the web browser. In exactly the same way that most web browsers have JavaScript by default as a language that can directly access the DOM model of the web browser, a plugin or other system that can do the same thing (with Python using <script type="text/python" /> instead of JavaScript using <script language="javascript" /> ) should be listed on this page. Python-based technology that auto-generates or compiles JavaScript definitely counts, as the resultant JavaScript would be executed by the web browser. Technology that simply uses JavaScript or depends on JavaScript libraries (such as mochikit, extjs or prototype) does not count, but a Python-based wrapper library around a JavaScript engine definitely counts. This latter example requires some further explanation: Pyjamas, for example, is a Python-to- JavaScript compiler that can include inline JavaScript . So, although the input to Pyjamas is part Python, part JavaScript , the output is pure JavaScript that runs in a web browser, and so any such "mixed" language libraries should be included on this page. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Yes, Python can do it... on Windows. Two (examples) ways: ActiveScripting ( PythonScript ), included in PyWin32 Gestalt (who mix Python, Ruby & JavaScript , via Silverlight) TODO: Add mention of IPython Notebook which can be run remotely, easily on AWS, and used within your browser. The HTML client can also interact with JavaScript and DOM, though this feature isn't quite merged yet. There's a lot being done on it, but it's already being used and probably should be mentioned here. This topic covers ways in which python can be used in web browsers to control, create or manipulate the content within a user's web browser, or a web-based technology (such as WebKit , the technology behind Safari, Midori, the OLPC Browser, Adobe AIR, Google Chrome and much more; XULrunner (the engine behind Firefox and much more); MSHTML (the engine behind IE and much more ); and KDE's KHTMLPart. To clarify what type of technology goes onto this page, some examples of types of technology that can and cannot be added to this section: Specifically excluded from the list is technology that simply generates static HTML content. So, an HTML pretty-printer library, as the resultant HTML simply uses the browser for "display" purposes rather than using the browser as an "application execution environment", is out. Such technologies can instead be found at WebClientProgramming . Plugins for Web Browsers that provide direct access to the DOM model of the web browser. In exactly the same way that most web browsers have JavaScript by default as a language that can directly access the DOM model of the web browser, a plugin or other system that can do the same thing (with Python using <script type="text/python" /> instead of JavaScript using <script language="javascript" /> ) should be listed on this page. Python-based technology that auto-generates or compiles JavaScript definitely counts, as the resultant JavaScript would be executed by the web browser. Technology that simply uses JavaScript or depends on JavaScript libraries (such as mochikit, extjs or prototype) does not count, but a Python-based wrapper library around a JavaScript engine definitely counts. This latter example requires some further explanation: Pyjamas, for example, is a Python-to- JavaScript compiler that can include inline JavaScript . So, although the input to Pyjamas is part Python, part JavaScript , the output is pure JavaScript that runs in a web browser, and so any such "mixed" language libraries should be included on this page. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Two (examples) ways: ActiveScripting ( PythonScript ), included in PyWin32 Gestalt (who mix Python, Ruby & JavaScript , via Silverlight) TODO: Add mention of IPython Notebook which can be run remotely, easily on AWS, and used within your browser. The HTML client can also interact with JavaScript and DOM, though this feature isn't quite merged yet. There's a lot being done on it, but it's already being used and probably should be mentioned here. This topic covers ways in which python can be used in web browsers to control, create or manipulate the content within a user's web browser, or a web-based technology (such as WebKit , the technology behind Safari, Midori, the OLPC Browser, Adobe AIR, Google Chrome and much more; XULrunner (the engine behind Firefox and much more); MSHTML (the engine behind IE and much more ); and KDE's KHTMLPart. To clarify what type of technology goes onto this page, some examples of types of technology that can and cannot be added to this section: Specifically excluded from the list is technology that simply generates static HTML content. So, an HTML pretty-printer library, as the resultant HTML simply uses the browser for "display" purposes rather than using the browser as an "application execution environment", is out. Such technologies can instead be found at WebClientProgramming . Plugins for Web Browsers that provide direct access to the DOM model of the web browser. In exactly the same way that most web browsers have JavaScript by default as a language that can directly access the DOM model of the web browser, a plugin or other system that can do the same thing (with Python using <script type="text/python" /> instead of JavaScript using <script language="javascript" /> ) should be listed on this page. Python-based technology that auto-generates or compiles JavaScript definitely counts, as the resultant JavaScript would be executed by the web browser. Technology that simply uses JavaScript or depends on JavaScript libraries (such as mochikit, extjs or prototype) does not count, but a Python-based wrapper library around a JavaScript engine definitely counts. This latter example requires some further explanation: Pyjamas, for example, is a Python-to- JavaScript compiler that can include inline JavaScript . So, although the input to Pyjamas is part Python, part JavaScript , the output is pure JavaScript that runs in a web browser, and so any such "mixed" language libraries should be included on this page. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. ActiveScripting ( PythonScript ), included in PyWin32 ActiveScripting ( PythonScript ), included in PyWin32 Gestalt (who mix Python, Ruby & JavaScript , via Silverlight) Gestalt (who mix Python, Ruby & JavaScript , via Silverlight) TODO: Add mention of IPython Notebook which can be run remotely, easily on AWS, and used within your browser. The HTML client can also interact with JavaScript and DOM, though this feature isn't quite merged yet. There's a lot being done on it, but it's already being used and probably should be mentioned here. This topic covers ways in which python can be used in web browsers to control, create or manipulate the content within a user's web browser, or a web-based technology (such as WebKit , the technology behind Safari, Midori, the OLPC Browser, Adobe AIR, Google Chrome and much more; XULrunner (the engine behind Firefox and much more); MSHTML (the engine behind IE and much more ); and KDE's KHTMLPart. To clarify what type of technology goes onto this page, some examples of types of technology that can and cannot be added to this section: Specifically excluded from the list is technology that simply generates static HTML content. So, an HTML pretty-printer library, as the resultant HTML simply uses the browser for "display" purposes rather than using the browser as an "application execution environment", is out. Such technologies can instead be found at WebClientProgramming . Plugins for Web Browsers that provide direct access to the DOM model of the web browser. In exactly the same way that most web browsers have JavaScript by default as a language that can directly access the DOM model of the web browser, a plugin or other system that can do the same thing (with Python using <script type="text/python" /> instead of JavaScript using <script language="javascript" /> ) should be listed on this page. Python-based technology that auto-generates or compiles JavaScript definitely counts, as the resultant JavaScript would be executed by the web browser. Technology that simply uses JavaScript or depends on JavaScript libraries (such as mochikit, extjs or prototype) does not count, but a Python-based wrapper library around a JavaScript engine definitely counts. This latter example requires some further explanation: Pyjamas, for example, is a Python-to- JavaScript compiler that can include inline JavaScript . So, although the input to Pyjamas is part Python, part JavaScript , the output is pure JavaScript that runs in a web browser, and so any such "mixed" language libraries should be included on this page. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. This topic covers ways in which python can be used in web browsers to control, create or manipulate the content within a user's web browser, or a web-based technology (such as WebKit , the technology behind Safari, Midori, the OLPC Browser, Adobe AIR, Google Chrome and much more; XULrunner (the engine behind Firefox and much more); MSHTML (the engine behind IE and much more ); and KDE's KHTMLPart. To clarify what type of technology goes onto this page, some examples of types of technology that can and cannot be added to this section: Specifically excluded from the list is technology that simply generates static HTML content. So, an HTML pretty-printer library, as the resultant HTML simply uses the browser for "display" purposes rather than using the browser as an "application execution environment", is out. Such technologies can instead be found at WebClientProgramming . Plugins for Web Browsers that provide direct access to the DOM model of the web browser. In exactly the same way that most web browsers have JavaScript by default as a language that can directly access the DOM model of the web browser, a plugin or other system that can do the same thing (with Python using <script type="text/python" /> instead of JavaScript using <script language="javascript" /> ) should be listed on this page. Python-based technology that auto-generates or compiles JavaScript definitely counts, as the resultant JavaScript would be executed by the web browser. Technology that simply uses JavaScript or depends on JavaScript libraries (such as mochikit, extjs or prototype) does not count, but a Python-based wrapper library around a JavaScript engine definitely counts. This latter example requires some further explanation: Pyjamas, for example, is a Python-to- JavaScript compiler that can include inline JavaScript . So, although the input to Pyjamas is part Python, part JavaScript , the output is pure JavaScript that runs in a web browser, and so any such "mixed" language libraries should be included on this page. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. To clarify what type of technology goes onto this page, some examples of types of technology that can and cannot be added to this section: Specifically excluded from the list is technology that simply generates static HTML content. So, an HTML pretty-printer library, as the resultant HTML simply uses the browser for "display" purposes rather than using the browser as an "application execution environment", is out. Such technologies can instead be found at WebClientProgramming . Plugins for Web Browsers that provide direct access to the DOM model of the web browser. In exactly the same way that most web browsers have JavaScript by default as a language that can directly access the DOM model of the web browser, a plugin or other system that can do the same thing (with Python using <script type="text/python" /> instead of JavaScript using <script language="javascript" /> ) should be listed on this page. Python-based technology that auto-generates or compiles JavaScript definitely counts, as the resultant JavaScript would be executed by the web browser. Technology that simply uses JavaScript or depends on JavaScript libraries (such as mochikit, extjs or prototype) does not count, but a Python-based wrapper library around a JavaScript engine definitely counts. This latter example requires some further explanation: Pyjamas, for example, is a Python-to- JavaScript compiler that can include inline JavaScript . So, although the input to Pyjamas is part Python, part JavaScript , the output is pure JavaScript that runs in a web browser, and so any such "mixed" language libraries should be included on this page. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Specifically excluded from the list is technology that simply generates static HTML content. So, an HTML pretty-printer library, as the resultant HTML simply uses the browser for "display" purposes rather than using the browser as an "application execution environment", is out. Such technologies can instead be found at WebClientProgramming . Specifically excluded from the list is technology that simply generates static HTML content. So, an HTML pretty-printer library, as the resultant HTML simply uses the browser for "display" purposes rather than using the browser as an "application execution environment", is out. Such technologies can instead be found at WebClientProgramming . Plugins for Web Browsers that provide direct access to the DOM model of the web browser. In exactly the same way that most web browsers have JavaScript by default as a language that can directly access the DOM model of the web browser, a plugin or other system that can do the same thing (with Python using <script type="text/python" /> instead of JavaScript using <script language="javascript" /> ) should be listed on this page. Plugins for Web Browsers that provide direct access to the DOM model of the web browser. In exactly the same way that most web browsers have JavaScript by default as a language that can directly access the DOM model of the web browser, a plugin or other system that can do the same thing (with Python using <script type="text/python" /> instead of JavaScript using <script language="javascript" /> ) should be listed on this page. Python-based technology that auto-generates or compiles JavaScript definitely counts, as the resultant JavaScript would be executed by the web browser. Python-based technology that auto-generates or compiles JavaScript definitely counts, as the resultant JavaScript would be executed by the web browser. Technology that simply uses JavaScript or depends on JavaScript libraries (such as mochikit, extjs or prototype) does not count, but a Python-based wrapper library around a JavaScript engine definitely counts. Technology that simply uses JavaScript or depends on JavaScript libraries (such as mochikit, extjs or prototype) does not count, but a Python-based wrapper library around a JavaScript engine definitely counts. This latter example requires some further explanation: Pyjamas, for example, is a Python-to- JavaScript compiler that can include inline JavaScript . So, although the input to Pyjamas is part Python, part JavaScript , the output is pure JavaScript that runs in a web browser, and so any such "mixed" language libraries should be included on this page. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Python-to-JavaScript Compilers These are tools that convert Python into JavaScript , that can then be run either stand-alone, using technology such as Spidermonkey, Google's V8 engine (for example, using pyv8 ), or in a web browser (where, in order to be useful, the applications must of course interface with the DOM model of the browser, typically using an AJAX library). The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. The translation from Python to Javascript can be done by a Python program Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjaco , the Python-to-Javascript Compiler is a python-based compiler that will compile most python code into fairly compact javascript. It uses a small (~60KB) standard library to implement all the usual python types like list, dict, int, bool, etc. It supports classes, inheritance, keyword and variable arguments, and much more. It has a comprehensive test suite, and aims to be the most fun and efficient way to create web applications with Python. Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Pyjamas is a Python-to- JavaScript compiler and AJAX-based Web Toolkit and Framework that allows users to write code in standard Python that will be run in a web browser, after translation to JavaScript . pyjs - the compiler - can also be used as a stand-alone JavaScript compiler. There are three main modes: --strict, providing as close to full strict python compatibility and interoperability as is both possible and has been contributed so far (which is quite a lot); -O, providing a subset of python functionality and providing much faster performance as a result; --stupid-mode which falls back to javascript for certain operations, with the result that the output is much easier to read and to compare to the original python from which it was generated, but runs the risk of changing the meaning of the python application and requiring a deep understanding of how javascript operates (stupidly - hence the name of the mode). Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2Js is an unmaintained project that can still be downloaded here . It is purely a Python-to- JavaScript compiler/translator. Py2js is a maintained project that provides a Python-to- JavaScript compiler. Py2js is a maintained project that provides a Python-to- JavaScript compiler. PyCow is an unmaintained project to translate Python code to Javascript with Mootools PyCow is an unmaintained project to translate Python code to Javascript with Mootools Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Fiddle Salad is a web development IDE with HTML and CSS that compiles Python to JavaScript Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . Transcrypt is a new tool, intended for professional use, to precompile Python 3.6 into compact, readable JavaScript . It allows for seamless integration with any JavaScript library without gluecode or dataconversion. Compact downloads, kB's rather than MB's, runtine only 20kB. Load and execution speed the same as JavaScript . You can debug your application from the Python sourcecode, even it it's minified. Optional static typechecking and linting included. Possibility to embed JSX into the sourcecode for use with React. Documentation with extensive examples using a diversity of JavaScript libraries. Native JavaScript code can be inserted anywhere in the Python source. Can be used in combination with Django or Bottle to have the same language on client and server side. Many demo's are part of the distribution, including an iOS web app. Transcrypt can be pip-installed from PyPi . or by a Javascript program, with the Python code translated and run on the fly by the web browser Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript .
📥 下载地址(文章中间)
一键制作系统U盘仅需下载到电脑后接上U盘点一下全自动完成。
Skulpt is a Python-to- JavaScript compiler that is focussing on providing (only) full Python syntax. The demo includes a Python interpreter prompt, which is actually running in the user's web browser, not on a server, as pure JavaScript . Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Brython is a Python 3 implementation that runs in a browser, providing <script type="text/python">...</script>. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Embedding Python inside Web Browsers This section describes projects where a Python interpreter itself has been embedded into the web browser. Instead of downloading the standard Python executable and libraries, these projects come with the CPython runtime and libraries pre-embedded (and, as such, are typically very large downloads). PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. PyXPComExt has the full Python interpreter embedded. PyXPCOMExt is the interpreter as a XULRunner extension; PyDOM is a library that will almost certainly be needed, that allows you to manipulate the browser's DOM model using Python. The API is (almost) identical to that of JavaScript . Effectively, where browsers have built-in support for lang="javascript" , PyXPComExt adds <script lang="python"> .... </script> to Firefox. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. AppCelerator 's Titanium provides support for <script type="text/python"> ... </script> , using IronPython and Silverlight. Ironpython by itself also provides support for <script type="text/python"> ... </script> . Ironpython by itself also provides support for <script type="text/python"> ... </script> . Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Firebreath is an NPAPI plugin that extends access to the full features of DOM programming out to other programming languages, including python. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Python Wrappers around Web "Libraries" and Browser Technology This section describes projects where you can (or have to) create your own web browser application in Python. It includes web browser "engines" that have Python interfaces to access, control and present web pages and web-relevant rich media content (such as Adobe Flash). CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. CefPython provides python bindings for the Google Chrome browser by using Chromium Embedded Framework , a web browser control based on the Chromium project. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PythonWebKit - PythonWebKit is a Python wrapper around Webkit that provides direct access to the DOM model. PyWebKitGtk has been incorporated into the build, rather than being built separately. Unlike the patched version of PyWebKitGtk , PythonWebKit does not go via gobject to access DOM functions but instead calls the Webkit DOM functions direct. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebKitGtk - PyWebkitGtk is a Python wrapper around Webkit that embeds the Webkit "engine" as a GTK widget. The standard version of PyWebKitGtk is unable to provide access to the DOM model, treating pywebkit as a hands-off widget that can be used to write your own Web Browser (see demobrowser.py). However, a patch to webkit and a corresponding patch to PyWebKitGtk will soon bring DOM model manipulation to python: see PyjamasDesktop for details. PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyWebkitQt4 is a python wrapper again around Webkit but this time as a Qt4 widget. An extremely limited subset of bindings to the DOM model have been added to PyWebkitQt4 , along with the means to execute JavaScript code snippets. Whilst in principle this sounds like a fantastic idea, in practice it is insane to work with, especially for event callbacks and for anything beyond the most absolute and basic DOM manipulation. PyWebkitQt4 is best avoided for significant DOM manipulation, or is best treated as nothing more than a means to display HTML (and other web-based media such as Flash and Java applications). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). PyKDE - KDE contains Python bindings to KHTMLPart (which is very similar to Webkit). This allows you to embed HTML into an application window. The Python bindings to the DOM model are slightly... obtuse. to say the least, and PyKHTML - PyKHTML makes them much more tolerable (see dom.py ). However, there are limitations in PyKDE's DOM bindings (that many people will never encounter) that you should investigate thoroughly before utilising PyKDE for seriously heavy-duty DOM model manipulation. To avoid those limitations you should ensure that the entire KDE platform is compiled with C++ RTTI enabled (it is typically disabled by most distributions, by default). WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . WebKit with the Objective-C bindings (MacOS X users only). Webkit itself has Objective-C bindings, on MacOS X. MacOS X's Objective-C technology comes with automatic bindings to all major programming languages, including Python (using pyobjc). Consequently, you can directly manipulate the DOM model from Python. However, unlike the use of MSHTML, and unlike XULrunner and the patched version of WebKit , the Objective-C WebKit bindings are limited to just the DOM model, and are limited to strict accordance with the W3C standards (rather than the de-facto standards defined by real-world JavaScript usage). So, for example, XMLHttpRequest is not included in the Objective-C bindings (whereas it is in XULRunner); and the embed element takes width and height strictly as integers, rather than accepting 100px and stripping off px . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . HulaHop provides Python access to DOM model manipulation - via XUL/Gecko Interfaces. HulaHop is part of the OLPC Sugar Project, but is available stand-alone. It depends on python-xpcom (part of XULRunner). HulaHop is being removed from Sugar and being replaced by WebKit . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . PyWin32 comtypes can be used (with care!) to create an MSHTML IWebBrowser2 ActiveX window and thus provide access to the full DOM features of the MSHTML (Trident) engine. PyjamasDesktop uses this technique to create the mshtml.py port. Note that creation and use of XMLHttpRequest is also shown in PyjamasDesktop 's mshtml.py . python-wxWebKit is beginning to provide Python access to DOM model manipulation - via python bindings that are auto-generated using SWIG. The goal of the project is to provide full access to the entire DOM model, and this goal is, as of May 2011, approximately 25% completed. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Python Wrappers around Web Browser "Test Suite" Libraries This section describes projects where you can test web applications, initiated from the command-line with python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Selenium , the browser test suite, has python bindings: Install HOWTO . Selenium is a suite of tools to automate web app testing across many platforms. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings. Windmill is a web testing tool designed to let you painlessly automate and debug your web application. Like selenium, it also has Python bindings.
📥 下载地址(文章结尾)
一键制作系统U盘仅需下载到电脑后接上U盘点一下全自动完成。