Ich möchte Ihnen zeigen, wie Sie mit ** Digest-Authentifizierung ** in Python von einer Site kratzen. (Obwohl es keinen Unterschied zur Standardauthentifizierung gibt ...) Für das Scraping selbst und andere Zertifizierungen ist Folgendes hilfreich. Einführung in die Python-Web-Scraping-Praxis [[Python] Scraping auf Seiten mit Standardauthentifizierung] (https://aga-note.com/python-scraping-basic-auth/)
Vorsichtsmaßnahmen Beim Schaben müssen verschiedene Regeln und Manieren berücksichtigt werden. Liste der Vorsichtsmaßnahmen für das Web-Scraping
Sprache: Python 3.7.4 Bibliotheken: Anfragen, Anfragen.auth, bs4, urllib.request
Installieren Sie die folgenden beiden mit dem Befehl pip.
pip install requests
pip install beautifulsoup4
Es ist eine Praxis, wenn die Installation abgeschlossen ist.
Dieses Mal habe ich als Beispiel das Beispiel der Webseite mit Digest-Authentifizierung verwendet, die vom Administrator der folgenden Site erstellt wurde. [Lassen Sie uns einen HTTP-Client erstellen (6) - Digest Authentication-] (http://x68000.q-e-d.net/~68user/net/http-auth-2.html)
import requests
from requests.auth import HTTPDigestAuth
from bs4 import BeautifulSoup
#1.Website-URL und Digest-Authentifizierung Benutzer und Pass
url = 'http://X68000.q-e-d.net/~68user/net/sample/http-auth-digest/secret.html'
username = 'hoge'
password = 'fuga'
#2.Informationen zur URL mit Digest-Authentifizierung abrufen
res = requests.get(url,auth=HTTPDigestAuth(username,password))
content = res.content
#3.HTML-Datenerfassung
#Alle Daten
data = BeautifulSoup(content, 'html.parser')
#Titelerwerb
title = data.title.string
#Text abrufen
body = data.body.string
print(title, body)
Ich werde auch den Fall des Herunterladens von Bildern und Dateien wie Excel direkt von einer URL mit Digest-Authentifizierung vorstellen. Ich konnte die Datei-URL mit Digest-Authentifizierung nicht finden, daher liste ich nur die Methode auf.
import urllib.request
from requests.auth import HTTPDigestAuth
from bs4 import BeautifulSoup
#1.Website-URL und Digest-Authentifizierung Benutzer und Pass
url = ******************
username = ******************
password = ******************
#2.URL-Datei mit Digest-Authentifizierung lesen
#Erklärung 1
password_manager = urllib.request.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, url, username, password)
#Kommentar 2
authhandler = urllib.request.HTTPDigestAuthHandler(password_manager)
opener = urllib.request.build_opener(authhandler)
#Dateiinhalt lesen
file_content = opener.open(url).read()
#3.Speichern Sie die Datei im lokalen Verzeichnis (Erweiterung xlsx, da Excel angenommen wird).
path = os.path.dirname(os.path.abspath(__file__)) + '/file.xlsx'
with open(excel_path, mode="wb") as f:
f.write(file_content)
print("Gerettet")
Erklärung 1 Registrieren Sie die für die Digest-Authentifizierung erforderlichen Informationen in den Variablen des Kennwortverwaltungsobjekts.
Kommentar 2 Öffnen Sie die URL mit Digest-Authentifizierung
** Manieren beim Schaben ** Liste der Vorsichtsmaßnahmen für das Web-Scraping
** Kratzpraxis ** Einführung in die Python-Web-Scraping-Praxis [[Python] Scraping auf Seiten mit Standardauthentifizierung] (https://aga-note.com/python-scraping-basic-auth/)
** Offizielles Dokument ** Authentication — Requests 2.23.0 documentation Offizielle Dokumentation für urllib.request