PyQt6 通过QWebEngineView自带cookie请求网页

把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())


    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数智笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值