Python3如何使用请求登录Facebook

时间:2015-07-18 23:59:46

标签: facebook python-3.x python-requests

(define (matcherbot-creator pattern) (lambda (sent) (cond ( (if (memsent? pattern sent) (outfollow pattern sent) #f) ((endofsent? pattern sent) '()) ((empty? pattern) sent))) )) (define (memsent? pattern sent) (cond ((empty? pattern) #t) ((empty? sent) #f) ((equal? (first pattern) (first sent)) (memsent? (bf pattern) (bf sent))) (else (memsent? pattern (bf sent))))) (define (outfollow pattern sent) (cond ((empty? sent) '()) ((empty? pattern) 'sent) ((equal? (first pattern) (first sent)) (se '() (outfollow (bf pattern) (bf sent)))) (else (outfollow pattern (bf sent))) )) (define (endofsent? pattern sent) (cond ((empty? sent) #t) ((empty? pattern) sent) ((equal? (first pattern) (first sent)) (endofsent? (bf pattern) (bf sent))) (else (endofsent? pattern (bf sent))))) 是电子邮箱

<input type="text" class="inputtext" name="email" id="email" value="" tabindex="1">是密码框

<input type="password" class="inputtext" name="pass" id="pass" tabindex="2"> 是提交按钮 现在......我已经运行了这个脚本,但我仍然无法登录(我进入相同的登录页面:facebook.com)

<input value="Connexion" tabindex="4" type="submit" id="u_0_v">

我是否必须传递“提交”按钮&#39;在身体里{}。我认为我应该包含它,但是提交按钮没有名称,所以我不知道如何将它包含在正文{}中。谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

您始终需要注意随凭据发送的任何其他(隐藏)字段,并且可能需要任何服务器处理。

runescape.com的例子就是这种情况。当您使用浏览器截取数据时(通常与表单一起发送),您可以通过以下方式修改脚本:

import requests
from bs4 import BeautifulSoup

body = {'username':'xxxx@hotmail.com','password':'xxxxx','submit':'Login','mod':'www','dest':'community'}
con = requests.post('https://secure.runescape.com/m=weblogin/login.ws', data=body)
s = BeautifulSoup(con.content)
print(s)

您可以看到moddest参数是完成服务器处理功能所必需的。至于提交按钮,它很少被检查,但是包含它也总是更安全(就像我在这个例子中所做的那样)。

结果不再是404,但登录仍然会失败,因为有Captcha可以阻止自动登录。

至于Facebook,有许多复杂的补充领域,需要进行大量的逆向工程。我强烈建议考虑使用官方Facebook Graph API(https://developers.facebook.com/docs/graph-api),如果可能的话,以满足您的需求。