2017-05-09 74 views
0

我嘗試了使用Python請求登錄Facebook的腳本。通過使用Firebug分析登錄POST,我發現它也發送了一些其他的輸入。我使用BS4模塊從登錄表中提取值,準備一個負載,並使用requests.session()發送它。但是當我返回URL時,它返回了表單的操作鏈接。我究竟做錯了什麼?任何幫助表示讚賞:)使用Python請求登錄Facebook的程序

代碼:

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

回答

1

我找到了自己的解決方案。 Facebook需要cookie以及輸入負載。我從初始獲取請求中提取cookie,並將其與帖子一起傳遞。