Python Mechanize log into Facebook cookie error

一笑奈何 提交于 2019-12-18 02:50:53

问题


Since a few days I cannot log into facebook anymore with my script. The Facebook login page gives the error:

Cookies required, cookies are not enabled on your browser.

I dont know why this error appears because I accept cookies in my script. I hope someone could help me out, I have already googled and tryed different cookie methods.

import cookielib
import urllib2
import mechanize

br = mechanize.Browser()
cookiejar = cookielib.LWPCookieJar()
br.set_cookiejar( cookiejar )
br.set_handle_equiv( True )
br.set_handle_gzip( True )
br.set_handle_redirect( True ) 
br.set_handle_referer( True )
br.set_handle_robots( False )

br.set_handle_refresh( mechanize._http.HTTPRefreshProcessor(), max_time = 1)
br.addheaders = [ ( 'User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1' ) ]

user = "EMAIL"
pass = "PASSWORD"
url = "https://www.facebook.com/login.php"

#Open URL and submit
br.open(url)
br.select_form(nr=0)
br.form['email'] = user
br.form['pass'] = pass
response = br.submit()

#Opens website and write source to html-output.txt
fileobj = open("HTML-OUTPUT.txt","wb")
fileobj.write(response.read())
fileobj.close()

回答1:


Assuming that how do you log in is not important (as you were prepared to use your Mozilla cookies to do so), you can use the mobile website to accomplish it.

First, you log in to Facebook using its mobile version (which will not require cookies), then redirect your browser to the page you wanted to save.

Minor changes to your code:

user = "EMAIL"
passwd = "PASSWORD"
url = "https://m.facebook.com/login.php"

#Open URL and submit
br.open(url)
br.select_form(nr=0)
br.form['email'] = user
br.form['pass'] = passwd
br.submit()

response = br.open("https://www.facebook.com/")

#Opens website and write source to html-output.txt
fileobj = open("HTML-OUTPUT.txt","wb")
fileobj.write(response.read())
fileobj.close()



回答2:


I would recommend you to use this reusable application made for this purpose:

$ pip install django-oauth-tokens

And after in terminal

>>> from oauth_tokens.providers.facebook import FacebookAuthRequest
>>> req = FacebookAuthRequest(username='...', password='...')
>>> response = req.authorized_request(url='https://facebook.com')
>>> response.content.count(USER_FULL_NAME)
>>> fileobj = open("HTML-OUTPUT.txt","wb")
>>> fileobj.write(response.content)
>>> fileobj.close()
4


来源:https://stackoverflow.com/questions/31309937/python-mechanize-log-into-facebook-cookie-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!