如何在QWebEnginePage-pyqt5中使用POST方法打开URL

时间:2019-01-29 07:04:10

标签: python python-3.x qt pyqt pyqt5

如何在QWebEnginePage-pyqt5中使用POST方法打开URL,我还需要在每个请求中读取和发布cookie。

def __init__(self, url):
    self.app = QApplication(sys.argv)
    QWebEnginePage.__init__(self)
    self.html = ''
    self.loadFinished.connect(self._on_load_finished)
    self.load(QUrl(url))
    self.app.exec_()

def _on_load_finished(self):
    self.html = self.toHtml(self.Callable)

def Callable(self, html_str):
    self.html = html_str
    self.app.quit()

1 个答案:

答案 0 :(得分:2)

除非使用Javascript,否则您不能使用const modalUpdate = function(obj, ele, hasSub = false) { $(ele).find('.btn-select2').each(function() { var button = this; var changeHeight = function () { var newHeight = $(button).parent().parent()[0].children[1].children[0].children[0].clientHeight; button.style = 'height: ' + (newHeight + 2) + 'px!important'; } setTimeout(function() { changeHeight(); }, 200); $(this).attr('title', 'Selecionar Todos'); $(this).attr('data-original-title', 'Selecionar Todos'); $(this).data('placement', 'top'); $(this).tooltip(); }); } 发出POST请求。

这里是一个如何使用Qt类进行操作的示例(尚未测试过,但应该可以使用)。

首先,我们获取请求以获取cookie(您需要为此提供特定的URL),然后我们将cookie存储为目标地址,并使用一些数据执行发布请求:

QWebEnginePage

请注意,此实现不是线程安全的。

此外,还有一些更简单的方法可以在Python中使用请求:

How to send cookies in a post request with the Python Requests library?