您需要发送完整的表格。找出Facebook期望的最简单方法是使用类似Google Chrome的开发人员工具的工具来监视您的Web请求。
为了让您的生活更轻松,我已经在Facebook上监视了自己的登录名,并在下面复制了该登录名(显然,已删除了私人信息),并删除了不重要的信息:
Request URL:https://m.facebook.com/login.PHP?refsrc=https%3A%2F%2Fm.facebook.com%2F&refid=8
Request Method:POST
Form Data:
lsd:AVqAE5Wf
charset_test:€,´,€,´,水,Д,?
version:1
ajax:0
width:0
pxr:0
gps:0
m_ts:1392974963
li:cxwHUxatQiaLv1nZEYPp0aTB
email:...
pass:...
login:Log In
如您所见,该表单包含许多字段。所有这些都需要提供,以便您登录。电子邮件和密码将由您的代码提供。实际上,其余字段的值由Facebook为您提供的HTML设置。这意味着,要模拟浏览器登录,您需要执行以下步骤:
data = {
'lsd': lsd,
'charset_test': csettest,
'version': version,
'ajax': ajax,
'width': width,
'pxr': pxr,
'gps': gps,
'm_ts': mts,
'li': li,
} data[‘email’] = email data[‘pass’] = pass data[‘login’] = ‘Log In’
使用请求发送登录信息Session
:
s = requests.Session()
r = s.post(url, data=data) r.raise_for_status()
通过来发送所有将来的HTTP流量Session
。