Maison  >  Article  >  développement back-end  >  Comment surmonter l'erreur HTTP 403 interdite lors du téléchargement de données boursières historiques ?

Comment surmonter l'erreur HTTP 403 interdite lors du téléchargement de données boursières historiques ?

DDD
DDDoriginal
2024-11-09 07:03:02311parcourir

How to Overcome HTTP Error 403 Forbidden When Downloading Historic Stock Data?

Erreur HTTP 403 : Interdit lors de la tentative de récupération de données boursières historiques

Ce problème provient d'une tentative de téléchargement automatique des données boursières historiques à l'aide de urllib2 , ce qui a entraîné une réponse HTTP Erreur 403 Forbidden.

Pour résoudre cette erreur, plusieurs solutions ont été proposées, notamment la modification de la chaîne de l'agent utilisateur et l'acceptation des cookies de réponse. Cependant, ces tentatives ont échoué.

Après une enquête plus approfondie, il a été découvert qu'en ajoutant des en-têtes supplémentaires à la demande, en particulier l'en-tête « Accepter », les données pouvaient être récupérées avec succès.

L'extrait de code suivant illustre la mise en œuvre réussie :

import urllib2,cookielib

site= "http://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/getHistoricalData.jsp?symbol=JPASSOCIAT&fromDate=1-JAN-2012&toDate=1-AUG-2012&datePeriod=unselected&hiddDwnld=true"
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
       'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
       'Accept-Encoding': 'none',
       'Accept-Language': 'en-US,en;q=0.8',
       'Connection': 'keep-alive'}

req = urllib2.Request(site, headers=hdr)

try:
    page = urllib2.urlopen(req)
except urllib2.HTTPError, e:
    print e.fp.read()

content = page.read()
print content

Notamment, l'ajout du seul en-tête « Accepter » était suffisant pour résoudre le problème. erreur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn