2

このコードで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

戻ります

フェイスブックログイン

必要なCookie

ブラウザでCookieが有効になっていません。続行する前に、セキュリティ設定でこれを調整してください。

Gzipとkeep-aliveが必要なため、リクエストライブラリを使用する必要があります

何が問題ですか?これらすべてを処理できるライブラリは他にありますか?(Gzip、Keep-alive cookie、..)

4

5 に答える 5

2

あなたは実際にすべてのことを自分でする必要がありますか?facepy(https://github.com/jgorset/facepy)を試しましたか?

そのライブラリは「リクエスト」も使用しますが、それらはそれを解決したと確信しています(OpenGraphの処理を行うにはアクセストークンが必要なため、ログインしたい場合)。

于 2012-07-10T11:46:07.510 に答える
0

私はセレンを使用して、中国でwechatに自動ログインします。コードは次のとおりです。

# -*- 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.-->"

それが役立つことを願っています。

于 2015-10-23T08:02:11.030 に答える
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()

より詳細なガイドについては、この投稿をご覧になることをお勧めします

于 2016-06-25T13:52:40.583 に答える