2012-07-10 5 views
2

이 코드로 페이스 북에 로그인 할 수 있습니다. 로그인 후 나는.페이스 북에서 파이썬으로 로그인

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':'[email protected]', 
    '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 

작동하지 않습니다 필요한 쿠키

쿠키 ar 브라우저에서 활성화되지 않았습니다. 계속하기 전에 보안 환경 설정 에서이 값을 조정하십시오.

내가

문제는 무엇인가 Gzip으로 필요하고 연결 유지하기 때문에 요청 라이브러리를 사용해야합니까? 이 모든 것을 처리 할 수있는 다른 라이브러리가 있습니까? (Gzip, Keep-alive cookie, ..)

+0

모습을 this post 제공 제안하지만, 아마 당신은 당신의 브라우저에서 쿠키를 사용하도록 설정해야합니까? –

+0

파이썬을 브라우저로 사용하지 않습니다. – user1514512

답변

2

실제로 모든 것을 직접해야합니까? Facepy (https://github.com/jgorset/facepy)를 사용해 보셨습니까?

그 라이브러리도 "요청"을 사용합니다. 그러나 그들은 그것을 확신합니다 (OpenGraph 물건을 만들기 위해 액세스 토큰이 필요하기 때문에 로그인하려고한다고 가정).

0

self.cookie =, cookielib.CookieJar() 두 번째 코드에서 파이썬 쿠키를 활성화하지 않았습니다.

0

질문을 읽고 로그인 후 정보를 얻고 싶다고 생각했습니다. 아래 코드는 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() 
0

나는 중국에서 자동 로그인 wechat에 selenium을 사용합니다. 코드는 여기에 있습니다 :

# -*- 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("[email protected]")  # 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.-->" 

희망이 있습니다.

0

셀렌을 사용하는 것이 좋습니다. 깊이 가이드에 대한 자세한 내용

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

난 당신이 당신이 무슨 말을하는지 오해 될 수

관련 문제