Urllib.error.HTTPError: HTTP Error 403: Forbidden
Bonjour,
Je cherche à écrire un programme permettant de récupérer les données tocks d'une paires de devises en utilisant l'API de FXCM, qui se nomme fxcmpy pour python.
Quand je réalise l'étape permettant d'importer et décompresser des données, j'ai le message d'erreur suivant :
http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
Je sais que lorsque l'on essaie d'importer des données en ligne, ce message d'erreur est généralement dû au fait que le programme est détecté comme une sorte de bot, ou quelque chose d'indésirable du moins, est c'est pourquoi on se fait rejeter de cette manière.
Seulement, dans mon cas je ne comprends pas ce que je pourrais changer. Je ne peux pas passer par un use-agent comme mozilla... du moins je ne vois pas comment.
Bref, mon code ressemble a cela pour l'instant :
import pandas as pd import time import numpy as np import datetime as dt import matplotlib.pyplot as plt from pylab import mpl, plt plt.style.use('seaborn') #Affiche: <stdin>:1: MatplotlibDeprecationWarning: The seaborn styles shipped by Matplotlib are deprecated since 3.6, as they no longer correspond to the styles shipped by seaborn. However, they will remain available as 'seaborn-v0_8-<style>'. Alternatively, directly use the seaborn API instead. mpl.rcParams['font.family'] = 'serif' #les import et prepatifs d'import sont effectué from fxcmpy import fxcmpy_tick_data_reader as tdr print(tdr.get_available_symbols()) # Affiche: ('AUDCAD', 'AUDCHF', 'AUDJPY', 'AUDNZD', 'CADCHF', 'EURAUD', 'EURCHF', 'EURGBP', 'EURJPY', 'EURUSD', 'GBPCHF', 'GBPJPY', 'GBPNZD', 'GBPUSD', 'GBPCHF', 'GBPJPY', 'GBPNZD', 'NZDCAD', 'NZDCHF', 'NZDJPY', 'NZDUSD', 'USDCAD', 'USDCHF', 'USDJPY') #toutes les paires disponibles start = dt.datetime(2018, 6, 25) stop = dt.datetime(2018, 6, 30) #def des dates depart et fin de l'import td = tdr('EURUSD', start, stop)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\aubin\AppData\Local\Programs\Python\Python311\Lib\site-packages\fxcmpy\fxcmpy_data_reader.py", line 96, in __init__
self.__fetch_data__()
File "C:\Users\aubin\AppData\Local\Programs\Python\Python311\Lib\site-packages\fxcmpy\fxcmpy_data_reader.py", line 174, in __fetch_data__
data = self.__fetch_dataset__(url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\aubin\AppData\Local\Programs\Python\Python311\Lib\site-packages\fxcmpy\fxcmpy_data_reader.py", line 185, in __fetch_dataset__
requests = urllib.request.urlopen(url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\aubin\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 216, in urlopen
return opener.open(url, data, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\aubin\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 525, in open
response = meth(req, response)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\aubin\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 634, in http_response
response = self.parent.error(
^^^^^^^^^^^^^^^^^^
File "C:\Users\aubin\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 563, in error
return self._call_chain(*args)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\aubin\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 496, in _call_chain
result = func(*args)
^^^^^^^^^^^
File "C:\Users\aubin\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 643, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
Si quelqu'un a une idée, sait comment résoudre le problème, ou sa source... bref toute sorte d'informations, je suis preneur !!
- Raise httperror(req.full_url, code, msg, hdrs, fp) urllib.error.httperror: http error 403: forbidden
- Http - Guide
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
3 réponses
bonjour,
as-tu fait le nécessaire pour le token?
Le token d'acceès à l'API ?
Je l'ai redirigé au dessus oui, et normalement il est bon, j'avoue que je n'ai pas vérifier en détail.
Mais il me semble qu'il n'y a pas besoin d'avoir une API ouverte sur le broker pour avoir accès aux données de marche...
A quelle ligne de code as-tu spécifié le token?
Merci d'utiliser ceci pour partager ton code: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Bonjour,
Je ne sais pas si c'est lié mais quand on va sur le site de FXCM on te dit que ce site n'est pas ouvert aux résidents français. Au delà du token, il y a donc vraisemblablement un filtre IP du côté du serveur qui t'empêche d'y accéder.