Scraping depuis un site authentifié avec python

introduction

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

De quoi avez-vous besoin?

Langage: python 3.7.4 Bibliothèques: requests, requests.auth, bs4, urllib.request

Installation de la bibliothèque

Installez les deux suivants avec la commande pip.

pip install requests
pip install beautifulsoup4

C'est une pratique lorsque l'installation est terminée.

Entraine toi

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)

Un peu appliqué

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

référence

** 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

Scraping depuis un site authentifié avec python
Grattage avec Python
Grattage avec Python
Site de courses de chevaux Web scraping avec Python
Grattage en Python (préparation)
Essayez de gratter avec Python.
Grattage avec Python + PhantomJS
Grattage avec du sélénium [Python]
Scraping avec Python + PyQuery
Scraping RSS avec Python
Python grattage Extraire l'environnement de course du site de courses de chevaux
Générez une instruction d'insertion à partir de CSV avec Python.
J'ai essayé de gratter avec Python
Web scraping avec python + JupyterLab
Grattage au sélénium en Python
Grattage avec Selenium + Python Partie 1
Grattage avec chromedriver en python
Créer un œuf avec python
Grattage avec du sélénium en Python
Scraping prévisions météorologiques avec python
Grattage avec Selenium + Python Partie 2
J'ai essayé de gratter avec du python
Web scraping débutant avec python
Avec skype, notifiez avec skype de python!
[Python] Envoyez un e-mail depuis Gmail avec le paramètre d'authentification en deux étapes
J'ai essayé d'envoyer un e-mail d'Amazon SES avec Python
Essayez de gratter avec Python + Beautiful Soup
Découpez une image avec python
Scraping avec Node, Ruby et Python
Utilisation de Rstan de Python avec PypeR
Scraping avec Selenium en Python (Basic)
Installez Python à partir des sources avec Ansible
Grattage avec Python, Selenium et Chromedriver
Utiliser un écran connecté I2C à partir de Python
J'ai envoyé un SMS avec Python
Exécutez Aprili depuis Python sur Orange
Obtenez les tendances Qiita avec le scraping Python
Appelez python de nim avec Nimpy
Dessinez une illustration avec Python + OpenCV
Charger fbx depuis python avec cinema4d
[Python] Envoyez des e-mails avec Outlook
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
Obtenez des informations météorologiques avec Python et le grattage
[Python] Informations sur les lentilles de grattage sur price.com
Obtenez des commandes PowerShell à partir d'un site d'analyse dynamique de logiciels malveillants avec BeautifulSoup + Python
Obtenez les performances passées des coureurs du site de courses de chevaux de grattage Python
[Scraping] Scraping Python
Collecter des informations sur Twitter avec Python (API Twitter)
Obtenez des informations sur la propriété en grattant avec python
[Python] Création d'un environnement avec Anaconda [Mac]
Recevoir des données textuelles de mysql avec python
Obtenir le code HTML de l'élément avec du sélénium Python
[Note] Obtenir des données de PostgreSQL avec Python
Grattage WEB avec Python (pour mémo personnel)
Lire un fichier audio à partir de Python avec interruption
Créez wordcloud à partir de votre tweet avec python3
Automatisez des tâches simples avec Python Part1 Scraping
Premiers pas avec Python Web Scraping Practice