Skip to content

Instantly share code, notes, and snippets.

@Mifody
Created May 18, 2021 15:24
Show Gist options
  • Save Mifody/0c0e542e54ae33c4536e0da16892eb2e to your computer and use it in GitHub Desktop.
Save Mifody/0c0e542e54ae33c4536e0da16892eb2e to your computer and use it in GitHub Desktop.
def process_request(self, request, spider):
cookiejarkey = request.meta.get('proxy') or request.meta.get("cookiejar")
proxy = request.meta.get('proxy')
token = self.tokens.get(cookiejarkey)
# req = request.copy()
if token:
s = ''
session = requests.Session()
headers = self.headers
headers['User-Agent'] = self.ua
headers.setdefault('Content-Type', 'application/json')
headers.setdefault('Accept', 'application/json, text/javascript, */*; q=0.01')
if proxy:
proxy = {
'http': proxy.replace('http://', ''),
'https': proxy.replace('http://', ''),
}
if not token:
self.counter += 1
data = {"clientId": "androidapp"}
if proxy:
resp = session.post('https://site', json=data, headers=headers,
proxies=proxy, timeout=10)
else:
resp = session.post('https://site', json=data, headers=headers)
cookies = session.cookies.get_dict()
try:
data = resp.json()
except:
s = ''
token = TokenState(
acces_token=data['authToken']['accessToken'],
next_check=datetime.timestamp(datetime.now()) + data['authToken']['expiresIn'] - 100,
refresh_token=data['authToken']['refreshToken'],
cookies=cookies,
cookiejarkey=self.counter,
proxy=request.meta.get('proxy'),
)
self.tokens[cookiejarkey] = token
request.cookies = token.cookies
s = ''
request.meta['cookiejar'] = token.cookiejarkey
request.headers['Authorization'] = 'Bearer ' + token.acces_token
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment