@@ -219,9 +219,6 @@ def _check_guest_token_response(self, r):
219219 if r .status_code != 200 :
220220 self ._set_random_user_agent ()
221221 return False , f'non-200 response ({ r .status_code } )'
222- if 'document.cookie = decodeURIComponent("gt=' not in r .text and 'gt' not in r .cookies :
223- self ._set_random_user_agent ()
224- return False , 'unable to find guest token'
225222 return True , None
226223
227224 def _ensure_guest_token (self , url = None ):
@@ -234,6 +231,14 @@ def _ensure_guest_token(self, url = None):
234231 if 'gt' in r .cookies :
235232 logger .debug ('Found guest token in cookies' )
236233 self ._guestTokenManager .token = r .cookies ['gt' ]
234+ if not self ._guestTokenManager .token :
235+ logger .debug ('No guest token in response' )
236+ logger .info ('Retrieving guest token via API' )
237+ r = self ._post ('https://api.twitter.com/1.1/guest/activate.json' , data = b'' , headers = self ._apiHeaders , responseOkCallback = self ._check_guest_token_response )
238+ o = r .json ()
239+ if not o .get ('guest_token' ):
240+ raise snscrape .base .ScraperError ('Unable to retrieve guest token' )
241+ self ._guestTokenManager .token = o ['guest_token' ]
237242 assert self ._guestTokenManager .token
238243 logger .debug (f'Using guest token { self ._guestTokenManager .token } ' )
239244 self ._session .cookies .set ('gt' , self ._guestTokenManager .token , domain = '.twitter.com' , path = '/' , secure = True , expires = self ._guestTokenManager .setTime + 10800 )
0 commit comments