qtwebview访问设置cookies后的网页
因为在python项目中需要用到浏览器显示自动登录后的网页,调用系统浏览器的话暂时没找到什么好的解决方法,这里利用qt的webview来实现浏览器展示登录后的网页。
我是用requests进行自动登录的,看了下文档可以通过webview->page()->networkAccessManager()->setCookieJar(QNetworkCookieJar)方法设置cookie
,从requests中获取到的是RequestsCookieJar对象,去看了它的文档就可以知道如何转化成字典:
requests.utils.dict_from_cookiejar(requests.cookies)
得到字典格式的cookies后可以转化成QNetworkCookie的形式了,
注意还需要设置cookie的domain,domin代表cookie生效的网站。
for key, values in my_cookie_dict.items():
my_cookie = QNetworkCookie(QByteArray(key), QByteArray(values))
my_cookie.setDomain('.baidu.com')
cookies.append(my_cookie)
QNetworkCookieJar中有个setAllCookies方法的参数要求是QNetworkCookie列表
示例代码:
from PyQt4.QtGui import QApplication
from PyQt4.QtWebKit import QWebView
from PyQt4.QtCore import QUrl, QByteArray
from PyQt4.QtNetwo