PyQt5.QtWebEngineWidgetsQWebEnginePage()实现网页Cookie管理功能
发布时间:2024-01-05 21:28:36
PyQt5.QtWebEngineWidgets模块提供了一个用于展示Web内容的部件。这个模块中的QWebEnginePage类提供了对网页内容的操作和交互的方法。
QWebEnginePage类中的cookies()方法可以用于获取当前加载的网页的所有cookie。该方法返回一个列表,列表中的每个元素是一个字典,包含了cookie的各种属性,如名称、值、路径、域等。
这个方法可以用于实现网页Cookie管理功能。下面是一个简单的使用例子:
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.webview = QWebEngineView(self)
self.setCentralWidget(self.webview)
# 创建Cookie菜单
self.cookieMenu = QMenu(self)
self.cookieMenu.addAction(QAction('显示Cookie', self, triggered=self.showCookie))
self.cookieMenu.addAction(QAction('删除Cookie', self, triggered=self.deleteCookie))
# 将Cookie菜单添加到主窗口的菜单栏上
self.menuBar().addMenu(self.cookieMenu.menuAction())
# 加载网页
self.loadPage('https://www.baidu.com')
def loadPage(self, url):
self.webview.loadStarted.connect(self.startLoading)
self.webview.loadFinished.connect(self.finishLoading)
self.webview.load(QUrl(url))
def startLoading(self):
self.setWindowTitle("正在加载...")
def finishLoading(self):
self.setWindowTitle(self.webview.title())
def showCookie(self):
page = self.webview.page()
cookies = page.cookies()
# 在控制台输出Cookie信息
for cookie in cookies:
print("Name:", cookie['name'])
print("Value:", cookie['value'])
print("Domain:", cookie['domain'])
print("Path:", cookie['path'])
print("Secure:", cookie['secure'])
print("HttpOnly:", cookie['httponly'])
print("Expiration:", cookie['expiration'])
def deleteCookie(self):
page = self.webview.page()
cookies = page.cookies()
# 删除所有的Cookie
for cookie in cookies:
page.deleteCookie(cookie)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
在这个例子中,我们创建了一个带有Web视图的主窗口。我们使用loadPage()方法加载了百度网页,并在窗口的标题栏上显示了网页的标题。通过右键点击菜单栏上的"显示Cookie"菜单项,我们可以在控制台输出当前加载网页的所有Cookie信息。通过右键点击菜单栏上的"删除Cookie"菜单项,我们可以删除当前加载网页的所有Cookie。
请注意,要运行这个例子,你需要安装PyQt5模块和PyQtWebEngine模块。
以上就是使用PyQt5.QtWebEngineWidgets.QWebEnginePage来实现网页Cookie管理功能的示例。希望对你有所帮助!
