2017-08-01 5 views
1

Ich versuche zu machen, eine Anwendung mit GUI mit PyQt5, die ihre Sachen auf Instagram tut. Hier ist eine Funktion, die ich bin stecken:Python 3 | PyQt5 - QWebEngineView + urllib + BeautifulSoup mit Cookies

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

Problem ist, wenn ich jemandes URL eingeben, die ihr Konto festgelegt hat nur nur ihre Bilder Freunde zu zeigen, erhalte ich einen „404 not found“ Fehler in Python. Also muss ich irgendwie einloggen, damit ich auf diese Art von Bildern zugreifen kann.

Also meine Frage ist, wie würde ich meine Cookies aus meinem Chrome-Browser importieren, und senden Sie sie mit den Anfragen, so dass ich mich einloggen und natürlich eingeloggt bleiben - so dass ich die Seite mit QWebEngineView während des Aufenthalts durchsuchen kann Anmelden und urllib.requests ausführen, ohne dass sie fehlschlagen.

Umwelt: Python 3.6.2, PyQt5.9, Windows10x64

Antwort

0

Ich bin mir nicht sicher über Ihre Cookies von Chrome importieren, aber Sie können sie in Ihrer Anwendung mit dem folgenden Code bestehen. Sie müssen sich einmal anmelden, um Ihre Cookies zu setzen, aber das nächste Mal, wenn Sie Ihre App ausführen, sollten Sie nicht noch einmal müssen.

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