Je voudrais vous montrer comment gratter un site avec ** l'authentification Digest ** en python. (Bien qu'il n'y ait aucune différence avec l'authentification de base ...) Pour le grattage et d'autres certifications, ce qui suit sera utile. Introduction à la pratique du grattage Web Python [[Python] Scraping vers des pages avec authentification de base] (https://aga-note.com/python-scraping-basic-auth/)
Remarques Lors du grattage, il est nécessaire de prendre en compte diverses règles et manières. Liste des précautions pour le scraping Web
Langage: python 3.7.4 Bibliothèques: requests, requests.auth, bs4, urllib.request
Installez les deux suivants avec la commande pip.
pip install requests
pip install beautifulsoup4
C'est une pratique lorsque l'installation est terminée.
Cette fois, j'ai utilisé un exemple de page Web avec l'authentification Digest créée par l'administrateur du site suivant comme exemple. [Faisons un client HTTP (6) - Authentification Digest-] (http://x68000.q-e-d.net/~68user/net/http-auth-2.html)
import requests
from requests.auth import HTTPDigestAuth
from bs4 import BeautifulSoup
#1.URL du site Web et utilisateur d'authentification Digest et passe
url = 'http://X68000.q-e-d.net/~68user/net/sample/http-auth-digest/secret.html'
username = 'hoge'
password = 'fuga'
#2.Obtenir des informations sur l'URL avec l'authentification Digest
res = requests.get(url,auth=HTTPDigestAuth(username,password))
content = res.content
#3.acquisition de données html
#Toutes les données
data = BeautifulSoup(content, 'html.parser')
#Obtenir le titre
title = data.title.string
#Obtenir du texte
body = data.body.string
print(title, body)
Je présenterai également le cas du téléchargement d'images et de fichiers tels qu'Excel directement à partir d'une URL avec authentification Digest. Je n'ai pas pu trouver l'URL du fichier avec l'authentification Digest, je vais donc simplement énumérer la méthode.
import urllib.request
from requests.auth import HTTPDigestAuth
from bs4 import BeautifulSoup
#1.URL du site Web et utilisateur d'authentification Digest et passe
url = ******************
username = ******************
password = ******************
#2.Lire le fichier d'URL avec l'authentification Digest
#Explication 1
password_manager = urllib.request.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, url, username, password)
#Explication 2
authhandler = urllib.request.HTTPDigestAuthHandler(password_manager)
opener = urllib.request.build_opener(authhandler)
#Lire le contenu du fichier
file_content = opener.open(url).read()
#3.Enregistrez le fichier dans le répertoire local (extension xlsx car Excel est supposé)
path = os.path.dirname(os.path.abspath(__file__)) + '/file.xlsx'
with open(excel_path, mode="wb") as f:
f.write(file_content)
print("Enregistré")
Explication 1 Enregistrez les informations requises pour l'authentification Digest dans les variables de l'objet de gestion des mots de passe.
Explication 2 Ouvrir l'URL avec l'authentification Digest
** Manières de grattage ** Liste des précautions pour le scraping Web
** Pratique de grattage ** Introduction à la pratique du grattage Web Python [[Python] Scraping vers des pages avec authentification de base] (https://aga-note.com/python-scraping-basic-auth/)
** Document officiel ** Authentication — Requests 2.23.0 documentation Documentation officielle pour urllib.request
Recommended Posts