使用python登录facebook

使用python登录facebook,python,facebook,cookies,login,keep-alive,Python,Facebook,Cookies,Login,Keep Alive,我可以用这个代码登录facebook。登录后,我可以访问一个需要您登录的页面 def SignIn(self): url = 'https://login.facebook.com/login.php?login_attempt=1' data = "locale=en_US&non_com_login=&email="+str(self.Username)+"&pass="+str(self.Password)+"&lsd=20TOl"

我可以用这个代码登录facebook。登录后,我可以访问一个需要您登录的页面

def SignIn(self):
    url = 'https://login.facebook.com/login.php?login_attempt=1'
    data = "locale=en_US&non_com_login=&email="+str(self.Username)+"&pass="+str(self.Password)+"&lsd=20TOl"
    self.cookie = cookielib.CookieJar()

    try:
        self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie))
    except:
        sys.stderr.write("Unexpected error!".format(src))

    try:
         self.opener.open('https://www.facebook.com')
    except:
         sys.stderr.write("Unexpected error!1")

    try:
         self.opener.open(url, data)
    except:
        sys.stderr.write("Unexpected error!2")

    self.IsSignIned=True  
    return self.opener
但是这个代码不起作用

import requests


headers = {'Host':'www.facebook.com',
'Origin':'http://www.facebook.com',
'Referer':'http://www.facebook.com/',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11'}


s = requests.session(headers=headers)
login_data = {
    'locale':'en_US',
    'non_com_login':'',
    'email':'mymail@mail.com',
    'pass':'mypassword',
    'lsd':'20TOl'
    }

r=s.post('https://login.facebook.com/login.php?login_attempt=1',data=login_data,verify=False)
print r.content
print r.status_code
它回来了

Facebook登录

需要饼干吗

浏览器上未启用Cookie。请在您的房间里调整这个 继续之前,请先选择安全首选项

我必须使用请求库,因为我需要Gzip并保持活动状态

有什么问题?
有没有其他的图书馆可以处理所有这些?(Gzip,Keep alive cookie,…)

你真的需要自己做所有的事情吗?你试过facepy吗(https://github.com/jgorset/facepy)?


该库也使用了“请求”,但我确信它们解决了这个问题(假设您想要登录,因为您需要一个访问令牌来完成OpenGraph的工作)。

self.cookie=,cookielib.CookieJar()
您没有在第二段代码中激活python cookie。

我读了您的问题,认为您想在登录后获取信息。下面是我显示HTML内容的代码,它能解决您的问题吗

#!/usr/bin/python

import urllib, urllib2, cookielib

username = 'yourusername'

password = 'yourpassword'

cj = cookielib.CookieJar()

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

login_data = urllib.urlencode({'username' : username, 'j_password' : password})

opener.open('https://login.facebook.com/login.php?login_attempt=1', login_data)

resp = opener.open('http://www.facebook.com/')

print resp.read()
我在中国经常自动登录微信。代码如下:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.support import ui
from selenium.webdriver.common.keys import Keys

def page_is_loaded(driver):
    return driver.find_element_by_tag_name("body") != None

driver = webdriver.Firefox() # open firefox browser
driver.get('https://mp.weixin.qq.com/') # go to url 

wait = ui.WebDriverWait(driver, 10)
wait.until(page_is_loaded)

wechat_account = driver.find_element_by_id("account") # here you should find the facebook login account id in webpage sourcecode and change the string "account"
wechat_account.send_keys("user@email.com")      # input your email address or your wechat account

your_password = driver.find_element_by_id("pwd")
your_password.send_keys("balabalabala")         # your password instead of balabalabala
your_password.send_keys(Keys.RETURN)

print "Mission Completed! Write your new article.-->"

希望对你有所帮助。

我建议你使用硒

from selenium import webdriver  ##Imports the selenium web driver
driver = webdriver.Firefox()    ##Create a Firefox Webdriver
driver.get("https://www.facebook.com/")  ##Tells the driver to go to     facebook.com
driver.find_element_by_css_selector("#email").send_keys("insert username here")
driver.find_element_by_css_selector("#pass").send_keys("insert password  here")
driver.find_element_by_css_selector("#u_0_q").click()

要获得更深入的指导,我建议您看一看

我可能误解了您的意思,但也许您只需要在浏览器中启用cookie?我使用python而不是任何浏览器