Requête web génère erreur 401 mais pas l'URL directement dans le navigateur
Bonjour,
J'essaye de récupérer par le code un fichier texte produit par une API :
https://www.boursorama.com/bourse/ac...bol=0P0000VHMO
Si je saisis cette URL directement dans le navigateur, un fichier texte est automatiquement enregistré dans mes "téléchargements"
Si je le fais par le code, cela me génère une erreur 401.
Voici le code Python que j'ai essayé (parmi d'autres) :
Code:
1 2 3 4 5 6 7 8
| import requests
url = 'https://www.boursorama.com/bourse/action/graph/ws/download?length=1825&period=1&symbol=0P0000VHMO'
header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}
response = requests.get(url,headers=header)
print (response) |
J'ai essayé de spécifié des headers, et même de façon aléatoire, mais cela ne marche pas.
Je pense qu'il faut spécifier un cookie mais là je ne sais pas trop comment faire. J'ai cherché sur le net et j'ai trouvé des codes qui résolvent des situations pour d'autres API mais aucun tuto qui permette de les comprendre pour les adapter à mon cas présent
En utilisant l'inspecteur du navigateur, j'ai trouvé que cette requête web utilise un cookie dans les request headers mais je ne suis pas assez calé pour savoir comment lui générer ce cookie par le code. J'ai bien tattoné avec ceci mais le cookie_dict renvoie une chaine nulle
Code:
1 2 3 4 5 6 7 8 9
| import requests
url = 'https://www.boursorama.com' #/bourse/action/graph/ws/download?length=1825&period=1&symbol=0P0000VHMO'
s = requests.Session()
header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}
response = s.get(url,headers=header)
cookie_dict = s.cookies.get_dict()
print(cookie_dict) |
Bref, si vous pouvez m'aider à trouver la solution, voire mieux, m'orienter vers un tuto qui permette de trouver la solution adaptée à n'importe quelle API, ce serait super.