Python 3 | PyQt5 - 带有Cookies的QWebEngineView + urllib + beautifulsoup

时间:2017-08-01 18:31:00

标签: python-3.x cookies beautifulsoup urllib pyqt5

我正在尝试使用PyQt5制作一个使用GUI的应用程序,它可以在Instagram上运行。这是我坚持的一个功能:

def pro_smt(self):
    url = "https://www.instagram.com/someonespicture123"
    sauce = urllib.request.urlopen(url)
    soup = bs.BeautifulSoup(sauce, 'lxml')

        #I use this to check whether the profile is public, and therefore accessible without loggin in.
        self.browserWindow.load(QUrl(url))
        self.browserWindow.show()

问题是,如果我输入someones url,谁将其帐户设置为仅向朋友显示他们的图片,我在Python中收到“404 not found”错误。 所以我必须以某种方式登录,以便我可以访问这些类型的图像。

所以我的问题是如何从我的Chrome浏览器导入我的Cookie,然后将它们与请求一起发送,以便我登录,并保持登录状态 - 这样我就可以在保持登录的同时使用QWebEngineView浏览页面in,并在没有它们的情况下执行urllib.requests。

环境: Python 3.6.2,PyQt5.9,Windows10x64

1 个答案:

答案 0 :(得分:0)

我不确定从Chrome导入您的Cookie,但您可以使用以下代码将其保留在您的应用中。您必须登录一次才能设置Cookie,但下次运行应用时,您不需要再次使用。

defaultProfile = QWebEngineProfile.defaultProfile()
defaultProfile.setPersistentCookiesPolicy(QWebEngineProfile.ForcePersistentCookies)
cookies_path = '/your_app_cookie_path_here'
defaultProfile.setCachePath(cookies_path)
defaultProfile.setPersistentStoragePath(cookies_path)