把cookie给pyqt的浏览器控件QWebEngineView提交请求,以下代码测试通过,可以根据这个改装自己的逻辑。
from PyQt6.QtWidgets import *
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.QtNetwork import *
from PyQt6.QtWebEngineWidgets import *
from PyQt6.QtWebEngineCore import *
import sys
import urllib.parse
# 解析cookie
def parse_cookie(txt):
l=txt.split(';')
d=dict()
for i in l:
t=i.split('=')
d[t[0]]=t[1]
return d
if __name__ == "__main__":
# 初始化pyqt程序
app = QApplication(sys.argv)
# 输入cookie
cookie='XXXX' # 网站cookie 自行从网站获得,并测试
# 输入网站url
url='https://www.XXXXX.com'
# 初始化浏览器空间QWebEngineView
view=QWebEngineView()
# 解析url
web=urllib.parse.urlparse(url)
# 获取url域名
web_name=".".join(web.netloc.split(".")[1:])
# 创建http请求
req=QWebEngineHttpRequest()
# 生成http请求的来源
urlOrigin=QUrl(str(web.scheme+'://'+web.netloc))
# 设置请求url
req.setUrl(QUrl(url))
# 解析cookie 并导入
d=parse_cookie(cookie)
for key, value in d.items():
#生成单个cookie
cookie_str=QNetworkCookie(QByteArray(key.encode()),QByteArray(value.encode()))
# 保存cookie 每个cokie必须设置url来源,所在网站域名
view.page().profile().cookieStore().setCookie(cookie_str,urlOrigin)
# 设置cookie规则
view.page().profile().setPersistentCookiesPolicy(QWebEngineProfile.PersistentCookiesPolicy.AllowPersistentCookies)
# 浏览器加载请求
view.load(req)
view.show()
sys.exit(app.exec())