voici mon code
import requests;
url='that website';
headers={
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8,ja;q=0.7',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
};
r = requests.get(url,headers=headers);
print(r);
print(r.status_code);
puis il est tombé sur ceci:
requests.exceptions.SSLError: HTTPSConnectionPool (Host = 'www.xxxxxx.com', port = 44 3): Le nombre maximal de tentatives a été dépassé avec l'URL: xxxxxxxx (Causé par SSLEr ror (SSLCertVerificationError (1, ', vérification de certificat [SSL: CERTIFICATE_VERIFY_FAILED] a échoué) : impossible d'obtenir le certificat d'émetteur local (_ssl.c: 1045) ')))
que devrais-je faire?
Ce n'est pas recommandé pour utiliser verify = False
dans les environnements de votre organisation. Cela désactive essentiellement la vérification SSL.
Parfois, lorsque vous êtes derrière un proxy d'entreprise, il remplace la chaîne de certificats par celles du proxy. L'ajout des certificats dans cacert.pem utilisés par certifi devrait résoudre le problème. J'ai eu un problème similaire. Voici ce que j'ai fait pour résoudre le problème -
Installez certifi, si vous n'en avez pas. Commande:
pip install certifi
import certifi
certifi.where()
C:\\Users\\[UserID]\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\certifi\\cacert.pem
Ouvrez l'URL sur un navigateur. Téléchargez la chaîne de certificats à partir de l'URL et enregistrez-la sous forme de fichiers .cer encodés en Base64.
Ouvrez maintenant le cacert.pem dans un bloc-notes et ajoutez simplement tous les contenus de certificats téléchargés (---Begin Certificate--- *** ---End Certificate---
) à la fin.
Dans mon cas, c'était un violoniste en cours d'exécution ...