如何将 JavaScript 函数的结果放入 python 变量中。 pyqt

2024-07-03

我想在 PyQtvaluateJavaScript() 中创建一个函数(或者可能是类似的函数),然后显示计算函数的结果。 真正的函数会大得多,而且它可能不是一个字符串。

我只对如何在 PyQt 代码中创建函数并将结果获取到 python 变量感兴趣。

为了更清楚,我给你举个例子: 这就是我想在后面输入的jsloadFinished on http://jquery.com http://jquery.com:

w = document.getElementsByTagName('p')[0];
w.innerHTML

如果我在浏览器控制台中执行此操作,我将得到输出:

"jQuery is a fast and concise JavaScript Library ...... blah blah blah"

我想将这个输出存储在一个变量中。

#!/usr/bin/env python

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
import os, sys, signal
from urllib2 import urlopen

class GBot(QWebView):

    def __init__(self):
        QWebView.__init__(self)
        self.setPage(BrowserSettings())
        #self.jquery = get_jquery()
        self.load(QUrl('http://jquery.com'))
        self.frame = self.page().currentFrame()

    def _loadFinished(self, ok):
        doc = self.frame.documentElement()
        #doc.evaluateJavaScript(self.jquery)
        r = doc.evaluateJavaScript('''w = document.getElementsByTagName('p')[0]; w.innerHTML''')
        print r #want to do something like this


if __name__ == '__main__':
    app = QApplication(sys.argv)
    bot = GBot()
    bot.show()
    if signal.signal(signal.SIGINT, signal.SIG_DFL):
        sys.exit(app.exec_())
    app.exec_()

在此示例中,我首先创建一个myWindow通过传递 javascript 对象self到主框架,然后调用evaluateJavaScript when loadFinished:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from PyQt4 import QtCore, QtGui, QtWebKit  

getJsValue = """ 
w = document.getElementsByTagName('p')[0];
myWindow.showMessage(w.innerHTML);
"""  

class myWindow(QtWebKit.QWebView):  
    def __init__(self, parent=None):
        super(myWindow, self).__init__(parent)

        self.page().mainFrame().addToJavaScriptWindowObject("myWindow", self)

        self.loadFinished.connect(self.on_loadFinished)

        self.load(QtCore.QUrl('http://jquery.com'))

    @QtCore.pyqtSlot(str)  
    def showMessage(self, message):
        print "Message from website:", message

    @QtCore.pyqtSlot()
    def on_loadFinished(self):
        self.page().mainFrame().evaluateJavaScript(getJsValue) 

if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('myWindow')

    main = myWindow()
    main.show()

    sys.exit(app.exec_())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 JavaScript 函数的结果放入 python 变量中。 pyqt 的相关文章

  • 预加载队列中的 mp3 文件,以避免播放队列中下一个文件时出现任何延迟

    我正在编写一个脚本 其中我正在播放多个 mp3 并且每个文件都在队列中 播放下一个 mp3 文件会出现轻微延迟 因为缓冲 加载文件需要时间 我如何缓冲队列中的下一个 mp3 文件 以便所有文件顺利运行而没有任何延迟 getData 1 fu
  • 使用 python 将数据复制到 Vertica

    I use python and vertica python图书馆到COPY数据到Vertica DB connection vertica python connect conn info vsql cur connection cur
  • 为什么需要@babel-core

    我是 Babel 和 JS 的新手 我想知道何时以及为何使用 babel core 包而不是 babel cli From 巴贝尔官方文档 https babeljs io docs en Babel是一个工具链 主要用于转换ECMAScr
  • Python 中的 HTML 解析器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 使用Python文档我发现了HTML解析器 http docs python org lib modu
  • 如果按下警报,则转到“确定”按钮后的 URL

    我需要确保当用户在 JavaScript 警报窗口中单击 确定 时 浏览器会移动到不同的 URL 这可能吗 你是什 么意思 确保 alert message window location some url 在警报窗口中单击 确定 后重定向
  • 数据集继续使用线性回归而不是决策树模型

    我想在我的数据集上使用决策树模型 但无论我做什么 它都会继续使用线性回归 数据不同 但图表仍然相同 基本上 我编写了线性回归的代码 from sklearn linear model import LinearRegression linr
  • OpenCV 图像处理——C++、C、Python

    我正在考虑在一个项目中尝试 OpenCV 并注意到它有 C C 和 Python 我正在尝试确定是否应该使用 C C 还是 Python 并且希望使用具有最佳 OpenCV 支持的任何语言 仅从查看各种文档的索引页来看 C 绑定可能比其他绑
  • Chart.js 忽略画布高度和宽度

    继Chart js 文档 http www chartjs org docs getting started creating a chart我正在尝试绘制一个小图表
  • 与 C 数组相比,带有 NumPy 数组内存视图的 Cython 性能较差

    我遇到了一个非常奇怪的结果基准 http nbviewer ipython org github rasbt One Python benchmark per day blob master ipython nbs day4 python
  • scrollIntoView 滚动得太远

    我有一个页面 其中包含从数据库动态生成的带有 div 的表行的滚动条 每个表格行的作用就像一个链接 有点像您在视频播放器旁边的 YouTube 播放列表中看到的那样 当用户访问该页面时 他们所在的选项应该位于滚动 div 的顶部 此功能正在
  • Python:汇总和聚合 DataFrame 中的组和子组

    我正在尝试构建一个表 其中的组按子组划分 并包含每个子组的计数和平均值 例如 我想转换以下数据框 到一个看起来像这样的表 其中interval是一个更大的组和列a thru i成为组内的子组 每个单元格中具有相应子组的计数和平均值 我尝试过
  • 如何获取对象类型

    在我的 Google Apps 脚本应用程序中 我看到以下错误 脚本已完成 但返回值不是受支持的返回类型 如何找出我返回的值的类型 我试过 typeof obj 但我得到的只是它是一个对象 仅当缓存为空并且从电子表格加载数据时才会发生此错误
  • 在 JavaScript 中将数字转换为字符串,而不从数字中添加尾随零

    我尝试使用 toString 在 JavaScript 中将数字转换为字符串 但它会截断数字中无关紧要的零 举些例子 var n1 250 00 var n2 599 0 var n3 056 0 n1 toString yields 25
  • 使用 setuptools 从私有 Gitlab 包存储库安装 Python 包

    我为我的雇主创建了一个私人套餐 由于我被禁止将其上传到 PyPI 它是专有的 因此我将其上传到我们私人 Gitlab 中心上的项目的包索引中 我可以手动安装它 pip install my package extra index url h
  • JavaScript。如果数组包含重复数字,Array .sort() 方法会为 Chrome 和 Firefox 返回不同的结果

    我有包含随机数的数组 当我试图通过排序这个数组时 sort 方法 如果数组包含重复的数字 结果会不同 下面的代码在 Chrome 和 Firefox 中的工作方式有所不同 1 2 3 4 5 6 7 8 9 2 15 3 4 5 1 2 3
  • Numpy“shape”函数返回 2D 数组的 1D 值

    所以我创建了这个数组作为示例 a np array 1 1 1 1 2 2 2 2 3 3 3 3 4 13 49 13 49 10 10 2 2 11 1 1 1 2 22 2 2 3 33 3 3 4 133 49 13 49 100
  • 分组依据,在 pandas 中

    select df id count distinct airports as num from df group by df id having count distinct airports gt 3 我正在尝试在 Python pan
  • 在 Python 中访问 Firefox 3 cookie

    我正在尝试制作一个 python 脚本 该脚本将在 Firefox 中使用 cookie 访问网站 如果 cookielib MozillaCookieJar 支持 Firefox 3 它就会工作 有没有办法在 python 中访问 Fir
  • Python 与 Hive 的连接

    我安装了 Hortonworks Hive ODBC 驱动程序并在数据源中创建了连接 我测试了它并且成功了 我安装了PyODBC并编写了以下代码 import os sys pyodbc con pyodbc connect DSN MyC
  • python easy_install:指定存放所需文件的目录

    我正在尝试使用 easy install 来安装 MySQL python 它几乎立即失败 mysql c 36 23 错误 my config h 没有这样的文件或目录 mysql c 38 19 错误 mysql h 没有这样的文件或目

随机推荐

  • 在 docker 容器内挂载 cgroup

    我对一个遵循流程模型的组件进行了 Docker 化 主进程多次分叉自身 我想在 docker 容器内建立一个 cgroup 层次结构 以根据每个进程改变 CPU 和内存限制 有没有一种方法可以在不使用 privileged 或 CAP SY
  • Visual Studio 项目的预构建任务在 GitLab Runner 中失败

    我编写了一个 Python3 脚本来创建一些 Qt 资源 rcc 和头文件 h 因为该脚本将在 Windows 和 macOS 上执行 所以我将 Qt 工具路径基于一个环境变量 称为QTBIN它指向 Qt 安装文件夹中的二进制文件夹 到目前
  • Visual Studio 项目的预构建任务在 GitLab Runner 中失败

    我编写了一个 Python3 脚本来创建一些 Qt 资源 rcc 和头文件 h 因为该脚本将在 Windows 和 macOS 上执行 所以我将 Qt 工具路径基于一个环境变量 称为QTBIN它指向 Qt 安装文件夹中的二进制文件夹 到目前
  • 使用动态层次结构 SQL Server

    我在 SQL Server 中有以下数据集 层次结构表 Report Immediate Parent Child1 Parent1 Child2 Parent1 Child3 Parent2 Parent1 Grandparent1 Pa
  • 使用动态层次结构 SQL Server

    我在 SQL Server 中有以下数据集 层次结构表 Report Immediate Parent Child1 Parent1 Child2 Parent1 Child3 Parent2 Parent1 Grandparent1 Pa
  • 使用 XDebug 和 PHPStorm 进行远程调试

    首先要做的事情是 服务器是在 Debian 上的 VMPlayer 中运行的 Apache 主机是Windows 7 调试服务器是 XDebug 可通过共享文件夹直接访问文件 重要的 XDebug 在 Apache 和我的 Win7 防火墙
  • 使用 XDebug 和 PHPStorm 进行远程调试

    首先要做的事情是 服务器是在 Debian 上的 VMPlayer 中运行的 Apache 主机是Windows 7 调试服务器是 XDebug 可通过共享文件夹直接访问文件 重要的 XDebug 在 Apache 和我的 Win7 防火墙
  • 如何正确定义 v7 appcompat 依赖项?

    我正在尝试构建一个 继承的 Android 项目 我在用着Ant 和命令行工具 http developer android com tools building building cmdline html 和想法 在 styles xml
  • 如何正确定义 v7 appcompat 依赖项?

    我正在尝试构建一个 继承的 Android 项目 我在用着Ant 和命令行工具 http developer android com tools building building cmdline html 和想法 在 styles xml
  • 我可以在没有 ExecutorService 的情况下使用 Callable 线程吗?

    我可以在没有 ExecutorService 的情况下使用 Callable 线程吗 我们可以在没有 ExecutorService 的情况下使用 Runnable 的实例和 Thread 的子类 并且此代码可以正常工作 但这段代码始终有效
  • 我可以在没有 ExecutorService 的情况下使用 Callable 线程吗?

    我可以在没有 ExecutorService 的情况下使用 Callable 线程吗 我们可以在没有 ExecutorService 的情况下使用 Runnable 的实例和 Thread 的子类 并且此代码可以正常工作 但这段代码始终有效
  • 如何使用 Amazon Web Services (AWS) 同步会话?

    我们使用 Amazon Web Services AWS 并且拥有多个 Web 服务器和一个负载均衡器 Web 服务器的问题是 每个服务器的 SESSION 都是唯一的 我在 SESSION 中保留有关用户的一些信息 同步此信息的正确方法是
  • 我可以使用 Scrapy 填写网页表单吗?

    现在我正在使用 iMacros 从网络中提取数据并填写提交数据的表单 但 iMacros 是一个昂贵的工具 我需要一个免费的库 并且我已经阅读了有关用于数据挖掘的 Scrapy 的信息 我用它编程有点复杂 但金钱是规则 问题是我是否可以用S
  • 加载文件时的核心转储

    我正在尝试创建一个从 txt 文件加载数据的函数 但当它运行时 我总是收到分段错误 核心转储 错误 该文件包含未知数量的行 而每行都有一个字符串和一个由制表符分隔的整数 list create 函数只是创建一个数据结构 while循环最后删
  • 如何使用 Amazon Web Services (AWS) 同步会话?

    我们使用 Amazon Web Services AWS 并且拥有多个 Web 服务器和一个负载均衡器 Web 服务器的问题是 每个服务器的 SESSION 都是唯一的 我在 SESSION 中保留有关用户的一些信息 同步此信息的正确方法是
  • WebSockets 请求中请求的资源上不存在“Access-Control-Allow-Origin”标头[重复]

    这个问题在这里已经有答案了 我有大量关于如何在 Java Spring 中配置 CORS 的示例 但它仍然无法在具有 websockets 请求的项目中工作 它适用于 mcv api 路径 但我的 websockets 路径返回错误 加载失
  • WebSockets 请求中请求的资源上不存在“Access-Control-Allow-Origin”标头[重复]

    这个问题在这里已经有答案了 我有大量关于如何在 Java Spring 中配置 CORS 的示例 但它仍然无法在具有 websockets 请求的项目中工作 它适用于 mcv api 路径 但我的 websockets 路径返回错误 加载失
  • 我可以“堆叠” !important; 吗?

    我用谷歌搜索了一下 但找不到答案 我的问题是 堆叠 important 是否以某种方式起作用 或者我可以通过其他方式实现相同的功能吗 我知道这不是一个好的做法 例如 假设我有 myOuterDiv margin left 5px impor
  • 我可以“堆叠” !important; 吗?

    我用谷歌搜索了一下 但找不到答案 我的问题是 堆叠 important 是否以某种方式起作用 或者我可以通过其他方式实现相同的功能吗 我知道这不是一个好的做法 例如 假设我有 myOuterDiv margin left 5px impor
  • 如何将 JavaScript 函数的结果放入 python 变量中。 pyqt

    我想在 PyQtvaluateJavaScript 中创建一个函数 或者可能是类似的函数 然后显示计算函数的结果 真正的函数会大得多 而且它可能不是一个字符串 我只对如何在 PyQt 代码中创建函数并将结果获取到 python 变量感兴趣