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()
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()
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With