我尝试使用Python请求制作脚本来登录Facebook。通过使用Firebug分析登录POST,我发现它还发送了一些其他输入。我使用BS4模块从登录表单中提取值,准备一个加载,并使用requests.session()
发送它。但是当我返回URL时,它返回了表单的操作链接。我究竟做错了什么?任何帮助表示赞赏:)
代码:
#facebook login
import requests
from bs4 import BeautifulSoup as bs
url='http://www.facebook.com'
headers={'User-Agent':'Mozilla/5.0'}
r=requests.get(url)
soup=bs(r.text,'html.parser')
ft='login_form'
form=soup.find('form',{'id':'login_form'})
inputs=form.find_all('input')
load={}
for i in inputs:
load[i.get('name')]=i.get('value')
e=input('enter email')
p=input('enter password')
load['email']=e
load['pass']=p
s=requests.session()
r=s.post(form.get('action'),data=load,headers=headers)
print(r.url) #to verify login
s.close()
答案 0 :(得分:1)
我自己找到了解决方案。 Facebook需要cookie和输入负载。我从初始获取请求中提取了cookie并将其与帖子一起传递。