I am trying to do some web scraping from here but I am struggling to get the access token automaticaly. Everytime I do the web scraping, I need to manually update the Bearer token. Is there a way to do this automaticaly?
Let me show you how I do it manually:
url_WiZink = 'https://www.creditopessoal.wizink.pt/gravitee/gateway/api-chn-loans/v1/loans/quotation' headers_WiZink = {'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'pt-PT', 'Authorization': 'Bearer de6ea490-381e-417f-ab77-3aad0d7eb63c', 'Connection': 'keep-alive', 'Content-Length': '266', 'Content-Type': 'application/json;charset=UTF-8', 'Host': 'www.creditopessoal.wizink.pt', 'Origin': 'https://www.wizink.pt', 'Referer': 'https://www.wizink.pt/', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"', 'sec-ch-ua-mobile': '?0', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'same-site', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36', 'X-Channel-Id': 'LOANSIMULATOR', 'X-Client-Id': 'simWzkPt', 'X-Country-Id': 'PRT', 'X-Device-UUID': 'd14e9b629804cbba1ac7c3e78ab39a56'} payload_WiZink = {"productCode":"WZP01","fixedTermLoanId":84,"impositionAmount":{"amount":10000,"currency":"EUR"},"settlementDay":"5","dueOrAdvanceInterestIndicator":"3","nominalInterest":"8.0000000","feeRateId":"05","settlementFrequencyId":"0001","deprecationFrequencyId":"0001"} response_WiZink = requests.post(url_WiZink, headers=headers_WiZink, json=payload_WiZink, verify=False).json()
Advertisement
Answer
For that website, you can get an access token by calling their oauth/token
endpoint:
import requests access_token = requests.post( 'https://www.creditopessoal.wizink.pt/gravitee/gateway/api-chn-auth-server/v1/oauth/token', headers={'Authorization': 'Basic c2ltV3prUHQ6YmllZTktZmR6dzAzLXBvZWpuY2Q='}, data={'grant_type': 'client_credentials'}, ).json()['access_token'] print(access_token)