如何将requests.cookiejar转换成qnetworkcookiejar?

时间:2014-12-15 08:12:23

标签: python qt python-3.x pyqt pyqt5

是否有一种简单的方法可以将cookiejar从Python 3 requests library转换为qnetworkcookiejar

我将cookiejar从请求库转换为字典,然后转换为qnetworkcookiejar。有些cookie有多个版本,有不同的值。

def updateCookieJar(self, cookiejar, requested_url):     
    qnetworkcookie_list = []
    cookie_dict = dict_from_cookiejar(cookiejar)
    for cookie in cookie_dict: 
        tmp_cookiejar = QNetworkCookie(cookie, cookie_dict[cookie])
        qnetworkcookie_list.append(tmp_cookiejar)
    qcookiejar = QNetworkCookieJar()
    qcookiejar.setCookiesFromUrl(qnetworkcookie_list, QUrl(requested_url))
    self.networkAccessManager().setCookieJar(qcookiejar)

Webpage内调用此函数。

1 个答案:

答案 0 :(得分:0)

请尝试直接使用cookiejar而非字典。

def updateCookieJar(self, cookiejar, requested_url):     
    qnetworkcookie_list = []

    for cookie in cookiejar:
        tmp_cookiejar = QNetworkCookie(cookie.name, cookie.value)
        qnetworkcookie_list.append(tmp_cookiejar)
    qcookiejar = QNetworkCookieJar()
    qcookiejar.setCookiesFromUrl(qnetworkcookie_list, QUrl(requested_url))
    self.networkAccessManager().setCookieJar(qcookiejar)