@@ -82,7 +82,7 @@ def format_response(response: dict) -> str:
8282
8383# Function to perform the login
8484def get_fb_session (email , password , proxies = None ):
85- login_url = "https://mbasic .facebook.com/login/"
85+ login_url = "https://www .facebook.com/login/?next "
8686 headers = {
8787 "authority" : "mbasic.facebook.com" ,
8888 "accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ,
@@ -104,59 +104,60 @@ def get_fb_session(email, password, proxies=None):
104104 # Parse necessary parameters from the login form
105105 lsd = soup .find ("input" , {"name" : "lsd" })["value" ]
106106 jazoest = soup .find ("input" , {"name" : "jazoest" })["value" ]
107- li = soup .find ("input" , {"name" : "li" })["value" ]
108- m_ts = soup .find ("input" , {"name" : "m_ts" })["value" ]
109107
110108 # Define the URL and body for the POST request to submit the login form
111- post_url = "https://mbasic .facebook.com/login/device-based/regular/login/?refsrc=deprecated&lwv=100 "
109+ post_url = "https://www .facebook.com/login/?next "
112110 data = {
113111 "lsd" : lsd ,
114112 "jazoest" : jazoest ,
115- "m_ts" : m_ts ,
116- "li" : li ,
117- "try_number" : "0" ,
118- "unrecognized_tries" : "0" ,
113+ "login_source" : "comet_headerless_login" ,
119114 "email" : email ,
120115 "pass" : password ,
121- "login" : "Log In " ,
122- "bi_xrwh " : "0" ,
116+ "login" : "1 " ,
117+ "next " : None ,
123118 }
124119
125120 headers = {
126- "authority" : "mbasic.facebook.com" ,
127- "accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ,
128- "accept-language" : "en-US,en;q=0.9" ,
129- "cache-control" : "no-cache" ,
130- "content-type" : "application/x-www-form-urlencoded" ,
131- "cookie" : f"datr={ response .cookies .get ('datr' )} ; sb={ response .cookies .get ('sb' )} ; ps_n=1; ps_l=1" ,
132- "dpr" : "2" ,
133- "origin" : "https://mbasic.facebook.com" ,
134- "pragma" : "no-cache" ,
135- "referer" : "https://mbasic.facebook.com/login/" ,
136- "sec-fetch-site" : "same-origin" ,
137- "sec-fetch-user" : "?1" ,
138- "upgrade-insecure-requests" : "1" ,
139- "user-agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" ,
140- "viewport-width" : "1728" ,
121+ "User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:132.0) Gecko/20100101 Firefox/132.0" ,
122+ "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" ,
123+ "Accept-Language" : "en-US,en;q=0.5" ,
124+ "Accept-Encoding" : None ,
125+ "Referer" : "https://www.facebook.com/" ,
126+ "Content-Type" : "application/x-www-form-urlencoded" ,
127+ "Origin" : "https://www.facebook.com" ,
128+ "DNT" : "1" ,
129+ "Sec-GPC" : "1" ,
130+ "Connection" : "keep-alive" ,
131+ "cookie" : f"datr={ response .cookies .get ('datr' )} ;" ,
132+ "Upgrade-Insecure-Requests" : "1" ,
133+ "Sec-Fetch-Dest" : "document" ,
134+ "Sec-Fetch-Mode" : "navigate" ,
135+ "Sec-Fetch-Site" : "same-origin" ,
136+ "Sec-Fetch-User" : "?1" ,
137+ "Priority" : "u=0, i" ,
141138 }
142139
140+ from requests import cookies
141+
143142 # Send the POST request
144143 session = requests .session ()
144+ jar = cookies .RequestsCookieJar ()
145145 session .proxies = proxies
146+ session .cookies = jar
146147
147148 result = session .post (post_url , headers = headers , data = data )
148- if "sb" not in session . cookies :
149+ if "sb" not in jar :
149150 raise FacebookInvalidCredentialsException (
150151 "Was not able to login to Facebook. Please check your credentials. "
151152 "You may also have been rate limited. Try to connect to Facebook manually."
152153 )
153154
154155 cookies = {
155156 ** result .cookies .get_dict (),
156- "sb" : session . cookies ["sb" ],
157- "xs" : session . cookies ["xs" ],
158- "fr" : session . cookies ["fr" ],
159- "c_user" : session . cookies ["c_user" ],
157+ "sb" : jar ["sb" ],
158+ "xs" : jar ["xs" ],
159+ "fr" : jar ["fr" ],
160+ "c_user" : jar ["c_user" ],
160161 }
161162
162163 response_login = {
@@ -184,7 +185,9 @@ def get_fb_session(email, password, proxies=None):
184185 "user-agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" ,
185186 }
186187
187- response = requests .request ("POST" , url , headers = headers , data = payload , proxies = proxies )
188+ response = requests .request (
189+ "POST" , url , headers = headers , data = payload , proxies = proxies
190+ )
188191
189192 state = extract_value (response .text , start_str = '"state":"' , end_str = '"' )
190193
@@ -195,7 +198,7 @@ def get_fb_session(email, password, proxies=None):
195198 "accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ,
196199 "accept-language" : "en-US,en;q=0.9" ,
197200 "cache-control" : "no-cache" ,
198- "cookie" : f"datr={ response_login ['cookies' ]['datr' ]} ; sb={ response_login ['cookies' ]['sb' ]} ; c_user={ response_login ['cookies' ]['c_user' ]} ; xs={ response_login ['cookies' ]['xs' ]} ; fr={ response_login ['cookies' ]['fr' ]} ; m_page_voice= { response_login [ 'cookies' ][ 'm_page_voice' ] } ; abra_csrf={ meta_ai_cookies ['abra_csrf' ]} ;" ,
201+ "cookie" : f"datr={ response_login ['cookies' ]['datr' ]} ; sb={ response_login ['cookies' ]['sb' ]} ; c_user={ response_login ['cookies' ]['c_user' ]} ; xs={ response_login ['cookies' ]['xs' ]} ; fr={ response_login ['cookies' ]['fr' ]} ; abra_csrf={ meta_ai_cookies ['abra_csrf' ]} ;" ,
199202 "sec-fetch-dest" : "document" ,
200203 "sec-fetch-mode" : "navigate" ,
201204 "sec-fetch-site" : "cross-site" ,
0 commit comments