PyQt5开发中获取QWebEngineView的cookie

由于公司的需求,今天用QWebEngineView做了一个浏览器,在里面登录之后之后,需要获取到cookie,

对于一个python使用者,首先想到的就是用selenium获取浏览器的cookie,但是这是PyQt开发啊!!!!!

在网上找了半天教程,发现一些东西,但是都不怎么实用啊,搞了半天没搞好,突然灵光一现,能不能用js获取呢?

废话少说,直接上代码:

# 利用runJavaScript方法执行js代码,先声明一个函数,功能是获取cookie
view.page().runJavaScript("function test(){return document.cookie}")
# 执行函数,将执行的结果传到call_back函数里去
view.page().runJavaScript("test();", self.call_back)

def call_back(self, result):
    print(result)          # 在这里输出cookie

最后成功获取到cookie,非常简单,比网上的几十行代码精简多了

疑难杂症:这个输出只有在所有操作完成后才会执行,原因未知,PyQt5相关的文档太少了,C++的又看不懂,官方文档也看不懂,英语真的是程序员的一大硬伤啊。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
PyQt5嵌入网页并获取cookie,你可以使用QWebEngineProfile和QWebEngineCookieStore类来实现。以下是一个示例代码,演示了如何在PyQt5嵌入网页并获取cookie: ```python from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtWebEngineWidgets import QWebEngineView from PyQt5.QtWebEngineCore import QWebEngineProfile class MainWindow(QMainWindow): def __init__(self): super().__init__() # 创建一个QWebEngineView对象 self.webview = QWebEngineView() # 创建一个QWebEngineProfile对象 self.profile = QWebEngineProfile.defaultProfile() # 获取QWebEngineCookieStore对象 self.cookie_store = self.profile.cookieStore() # 加载网页 self.webview.load('https://www.example.com') # 将QWebEngineView对象设置为主窗口的央部件 self.setCentralWidget(self.webview) def handle_cookie(self, cookie): # 处理cookie print('Cookie Name:', cookie.name().data().decode()) print('Cookie Value:', cookie.value().data().decode()) if __name__ == '__main__': app = QApplication([]) window = MainWindow() # 连接cookieAdded信号,用于处理新添加的cookie window.cookie_store.cookieAdded.connect(window.handle_cookie) window.show() app.exec_() ``` 在这个示例,我们创建了一个MainWindow类,继承自QMainWindow。在初始化方法,我们创建了一个QWebEngineView对象,并使用load()方法加载指定的网页。然后,我们获取了默认的QWebEngineProfile对象,并从获取QWebEngineCookieStore对象。 我们还定义了一个handle_cookie方法,用于处理新添加的cookie。我们通过连接cookieAdded信号,将其与handle_cookie方法关联起来,这样当有新的cookie添加时,handle_cookie方法会被调用。 在handle_cookie方法,你可以根据需要处理cookie,比如获取cookie的名称和值,并进行相应的操作。 希望这个示例对你有帮助!
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值