Quand j'ai essayé de gratter en utilisant des requêtes en python, j'étais accro à SSLError, donc un mémo de contournement

Contexte

Comme le dit le titre. Même si j'ai pas mal cherché sur Google, je n'ai pas pu trouver de solution en japonais ou en anglais, alors faites une note pour que je puisse m'y référer en cas de récidive

Code où l'erreur s'est produite

Ce n'est pas vraiment wikipedia, mais c'est arrivé quand j'ai gratté le site https: // ~. Avec le PC que vous touchez maintenant, vous pouvez gratter le site sans aucune erreur. Pourquoi ... un problème environnemental?

import requests

url = 'https://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8'
response = requests.get(url)

result = response.text
print(result)

Je n'ai pas écrit le message d'erreur à ce moment-là, mais je me souviens que le mot «mauvaise poignée de main» était inclus dans «SSLError».

approche

Je ne voulais pas utiliser la stratégie verify = False, donc j'ai fait beaucoup de recherches et j'ai trouvé qu'en utilisant ʻurllib et ssl`, j'étais capable de gratter sans aucune erreur. Une fois arrivé, il ne vous reste plus qu'à extraire les éléments que vous souhaitez utiliser avec Beautiful Soup 4.

import urllib.request
import ssl

url = 'https://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8'
context = ssl.SSLContext()
req = urllib.request.Request(url=url)
with urllib.request.urlopen(req, context=context) as f:
    result = f.read().decode()
print(result)

Site référencé

Recommended Posts

Quand j'ai essayé de gratter en utilisant des requêtes en python, j'étais accro à SSLError, donc un mémo de contournement
Ce à quoi j'étais accro lors de l'utilisation de Python tornado
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé d'utiliser pipenv, alors prenez note
Quand j'ai essayé d'installer PIL et matplotlib dans un environnement virtualenv, j'en étais accro.
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python
[Python] Quand j'ai essayé de créer un outil de décompression avec un fichier zip que je connaissais juste, j'étais accro à sys.exit ()
Ce à quoi j'étais accro lors de la création d'applications Web dans un environnement Windows
Trois choses auxquelles j'étais accro lors de l'utilisation de Python et MySQL avec Docker
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
Une histoire à laquelle j'étais accro après la communication SFTP avec python
J'ai essayé d'implémenter un pseudo pachislot en Python
J'étais accro au grattage avec Selenium (+ Python) en 2020
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
J'étais sobrement accro à appeler awscli à partir d'un script Python 2.7 enregistré dans crontab
Une histoire qui était pratique lorsque j'ai essayé d'utiliser le module d'adresse IP python
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
J'ai essayé "Comment obtenir une méthode décorée en Python"
Ce à quoi j'étais accro lorsque l'utilisateur de traitement est passé à Python
J'ai trébuché lorsque j'ai essayé d'installer Basemap, donc un mémorandum
Ce à quoi j'étais accro en traitant d'énormes fichiers dans un environnement Linux 32 bits
J'ai essayé d'automatiser "un cœur même séparé" à l'aide d'un algorithme génétique en Python
Une histoire à laquelle j'étais accro en spécifiant nil comme argument de fonction dans Go
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
Ce à quoi j'étais accro en présentant ALE à Vim pour Python
[Python] J'ai essayé d'implémenter un tri stable, alors notez
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
J'ai essayé de créer une expression régulière de "date" en utilisant Python
J'ai essayé de mettre en œuvre un jeu de dilemme de prisonnier mal compris en Python
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
J'obtiens un attribut impossible à définir lors de l'utilisation de @property en python
J'ai essayé de créer une application todo en utilisant une bouteille avec python
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'implémenter la permutation en Python
J'ai essayé d'implémenter PLSA dans Python 2
J'ai essayé d'utiliser l'optimisation bayésienne de Python
Connectez-vous à Slack à l'aide de requêtes en Python
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'implémenter PPO en Python
Ce que j'étais accro à Python autorun
Lorsque j'ai essayé d'exécuter Python, j'ai été ignoré dans le Microsoft Store
J'étais accro à la création d'un environnement Python venv avec VS Code
J'ai essayé de développer un formateur qui génère des journaux Python en JSON
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
J'ai créé un exemple pour accéder à Salesforce en utilisant Python et Bottle
J'ai essayé d'implémenter le jeu de cartes de Trump en Python
J'étais accro à essayer Cython avec PyCharm, alors prenez note
[Fabric] J'étais accro à l'utilisation de booléen comme argument, alors notez les contre-mesures.
Un mémo que j'ai écrit un tri rapide en Python
Python: j'ai pu récurer en lambda
Je veux créer une fenêtre avec Python
J'ai essayé de jouer à un jeu de frappe avec Python
J'ai essayé d'implémenter TOPIC MODEL en Python