


[Python] Web Crawler (4): Einführung und praktische Anwendungen von Opener und Handler
Bevor wir mit dem folgenden Inhalt beginnen, erklären wir zunächst die beiden Methoden in urllib2: info und geturl
Das von urlopen zurückgegebene Antwortobjekt (oder die HTTPError-Instanz) verfügt über zwei sehr nützliche Methoden: info () und geturl( )
1.geturl():
Dies gibt die tatsächlich erhaltene URL zurück. Dies ist sehr nützlich, da urlopen (oder das, was das Opener-Objekt verwendet) möglicherweise Weiterleitungen enthält. Die erhaltene URL kann sich von der Anforderungs-URL unterscheiden.
Nehmen Sie als Beispiel einen Hyperlink in Renren,
Wir erstellen eine urllib2_test10.py, um die ursprüngliche URL und den umgeleiteten Link zu vergleichen:
from urllib2 import Request, urlopen, URLError, HTTPError old_url = 'http://rrurl.cn/b1UZuP' req = Request(old_url) response = urlopen(req) print 'Old url :' + old_url print 'Real url :' + response.geturl()
Nach dem Ausführen können Sie die URL sehen, auf die der echte Link verweist:
2.info():
Dies gibt ein Objekt zurück Ein Wörterbuchobjekt, das die erhaltene Seitensituation beschreibt. Normalerweise werden vom Server bestimmte Header gesendet. Derzeit eine Instanz von httplib.HTTPMessage.
Klassische Header umfassen „Inhaltslänge“, „Inhaltstyp“ und andere Inhalte.
Wir erstellen eine urllib2_test11.py, um die Anwendung von Informationen zu testen:
from urllib2 import Request, urlopen, URLError, HTTPError old_url = 'http://www.baidu.com' req = Request(old_url) response = urlopen(req) print 'Info():' print response.info()
Die Ergebnisse der Operation sind wie folgt, Sie kann die Seite sehen Zugehörige Informationen:
Lassen Sie uns über zwei wichtige Konzepte in urllib2 sprechen: Öffner und Handler.
1.Öffner:
Wenn Sie eine URL erhalten, verwenden Sie einen Öffner (eine Instanz von urllib2.OpenerDirector).
Normalerweise verwenden wir den Standardöffner: durch urlopen.
Aber Sie können Ihre eigenen Opener erstellen.
2.Handles:
Öffner verwenden Prozessor-Handler, und alle „schweren“ Arbeiten werden von den Handlern erledigt.
Jeder Handler weiß, wie er URLs über ein bestimmtes Protokoll öffnet oder wie er mit verschiedenen Aspekten des Öffnens einer URL umgeht.
Wie etwa HTTP-Redirect oder HTTP-Cookies.
Sie sollten einen Öffner erstellen, wenn Sie URLs mit einem bestimmten Handler abrufen möchten, beispielsweise einen Öffner, der Cookies verarbeitet, oder einen Öffner, der dies nicht tut umleiten.
Um einen Opener zu erstellen, instanziieren Sie einen OpenerDirector,
und rufen Sie dann .add_handler(some_handler_instance) auf.
In ähnlicher Weise können Sie build_opener verwenden, eine praktischere Funktion zum Erstellen von Opener-Objekten. Sie erfordert nur einen Funktionsaufruf.
build_opener fügt standardmäßig mehrere Prozessoren hinzu, bietet aber eine schnelle Möglichkeit, die Standardprozessoren hinzuzufügen oder zu aktualisieren.
Andere Handler, die Sie möglicherweise für Proxys, Validierung und andere häufige, aber eher spezielle Fälle verwenden möchten.
install_opener wird verwendet, um einen (globalen) Standardöffner zu erstellen. Das bedeutet, dass beim Aufruf von urlopen der von Ihnen installierte Opener verwendet wird.
Das Opener-Objekt verfügt über eine open-Methode.
Diese Methode kann wie die Funktion urlopen direkt zum Abrufen von URLs verwendet werden: Es ist normalerweise nicht erforderlich, install_opener aufzurufen, außer aus Bequemlichkeitsgründen.
Nachdem wir die beiden oben genannten Inhalte fertiggestellt haben, werfen wir einen Blick auf den oben genannten grundlegenden Authentifizierungsinhalt.
Basisauthentifizierung Basisauthentifizierung
Um das Erstellen und Installieren eines Handlers zu demonstrieren, verwenden wir HTTPBasicAuthHandler.
Wenn eine grundlegende Verifizierung erforderlich ist, sendet der Server einen Header (401-Fehlercode), um eine Verifizierung anzufordern. Dies gibt das Schema und einen „Bereich“ an und sieht folgendermaßen aus: Www-authenticate: SCHEME realm="REALM".
Zum Beispiel
Www-authenticate: Basic realm="cPanel Users"
Der Kunde muss eine neue Anfrage verwenden und den richtigen Namen und das richtige Passwort in den Anfrageheadern angeben.
Dies ist „Basisauthentifizierung“. Um diesen Prozess zu vereinfachen, können wir eine Instanz von HTTPBasicAuthHandler erstellen und den Opener diesen Handler verwenden lassen.
HTTPBasicAuthHandler verwendet ein Passwortverwaltungsobjekt, um URLs und Bereiche zu verarbeiten, um Benutzernamen und Passwörter zuzuordnen.
Wenn Sie wissen, welcher Realm (im vom Server gesendeten Header) ist, können Sie HTTPPasswordMgr verwenden.
Normalerweise ist es den Leuten egal, was ein Reich ist. In diesem Fall kann das praktische HTTPPasswordMgrWithDefaultRealm verwendet werden.
Dadurch werden ein Standardbenutzername und ein Standardkennwort für Ihre URL festgelegt.
Dies wird bereitgestellt, wenn Sie eine andere Kombination für einen bestimmten Bereich bereitstellen.
Wir weisen auf diese Situation hin, indem wir None für den Realm-Parameter angeben, der für add_password bereitgestellt wird.
Die URL der höchsten Ebene ist die erste, die eine Verifizierung erfordert. Tiefere URLs, die Sie an .add_password() übergeben, sind gleichermaßen geeignet.
Nachdem wir so viel Unsinn gesagt haben, wollen wir das oben Gesagte anhand eines Beispiels demonstrieren.
Wir erstellen eine urllib2_test12.py, um die Info-Anwendung zu testen:
# -*- coding: utf-8 -*- import urllib2 # 创建一个密码管理者 password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() # 添加用户名和密码 top_level_url = "http://example.com/foo/" # 如果知道 realm, 我们可以使用他代替 ``None``. # password_mgr.add_password(None, top_level_url, username, password) password_mgr.add_password(None, top_level_url,'why', '1223') # 创建了一个新的handler handler = urllib2.HTTPBasicAuthHandler(password_mgr) # 创建 "opener" (OpenerDirector 实例) opener = urllib2.build_opener(handler) a_url = 'http://www.baidu.com/' # 使用 opener 获取一个URL opener.open(a_url) # 安装 opener. # 现在所有调用 urllib2.urlopen 将用我们的 opener. urllib2.install_opener(opener)
Hinweis: Im obigen Beispiel stellen wir unseren HHTTPasicAuthHandler nur für build_opener bereit.
Die Standardöffner haben normale Handler: ProxyHandler, UnknownHandler, HTTPHandler, HTTPDefaultErrorHandler, HTTPRedirectHandler, FTPHandler, FileHandler, HTTPErrorProcessor.
Die top_level_url im Code kann tatsächlich eine vollständige URL sein (einschließlich „http:“ sowie dem Hostnamen und optionaler Portnummer).
Zum Beispiel: http://example.com/.
kann auch eine „Autorität“ sein (d. h. Hostname und optional Portnummer).
Zum Beispiel: „example.com“ oder „example.com:8080“.
Letzteres enthält die Portnummer.
Das Obige ist der Inhalt von [Python] Web Crawler (4): Einführung und Beispielanwendungen von Opener und Handler. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn). !

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





So erstellen Sie eine leistungsstarke Webcrawler-Anwendung mit React und Python Einführung: Ein Webcrawler ist ein automatisiertes Programm, das zum Crawlen von Webseitendaten durch das Internet verwendet wird. Mit der kontinuierlichen Weiterentwicklung des Internets und dem explosionsartigen Datenwachstum erfreuen sich Webcrawler immer größerer Beliebtheit. In diesem Artikel wird erläutert, wie Sie mit React und Python, zwei beliebten Technologien, eine leistungsstarke Webcrawler-Anwendung erstellen. Wir werden die Vorteile von React als Front-End-Framework und Python als Crawler-Engine untersuchen und spezifische Codebeispiele bereitstellen. 1. Für

Verwenden Sie die Sprachen Vue.js und Perl, um effiziente Webcrawler und Daten-Scraping-Tools zu entwickeln. Mit der rasanten Entwicklung des Internets und der zunehmenden Bedeutung von Daten ist auch die Nachfrage nach Web-Crawlern und Daten-Scraping-Tools gestiegen. In diesem Zusammenhang ist es eine gute Wahl, Vue.js und die Perl-Sprache zu kombinieren, um effiziente Webcrawler und Daten-Scraping-Tools zu entwickeln. In diesem Artikel wird vorgestellt, wie man ein solches Tool mit Vue.js und der Perl-Sprache entwickelt, und es werden entsprechende Codebeispiele beigefügt. 1. Einführung in Vue.js und die Perl-Sprache

Ein Webcrawler (auch Webspider genannt) ist ein Roboter, der Inhalte im Internet durchsucht und indiziert. Webcrawler sind im Wesentlichen dafür verantwortlich, den Inhalt einer Webseite zu verstehen, um ihn bei einer Abfrage abzurufen.

Ein Webcrawler ist ein automatisiertes Programm, das automatisch Websites besucht und Informationen von ihnen crawlt. Diese Technologie findet in der heutigen Internetwelt immer mehr Verbreitung und wird häufig in den Bereichen Data Mining, Suchmaschinen, Social-Media-Analyse und anderen Bereichen eingesetzt. Wenn Sie lernen möchten, wie Sie einen einfachen Webcrawler mit PHP schreiben, finden Sie in diesem Artikel grundlegende Anleitungen und Ratschläge. Zunächst müssen Sie einige grundlegende Konzepte und Techniken verstehen. Crawling-Ziel Bevor Sie einen Crawler schreiben, müssen Sie ein Crawling-Ziel auswählen. Dabei kann es sich um eine bestimmte Website, eine bestimmte Webseite oder das gesamte Internet handeln

Mit der Entwicklung des Internets werden alle Arten von Daten immer zugänglicher. Als Werkzeug zur Datenbeschaffung haben Webcrawler immer mehr Aufmerksamkeit und Aufmerksamkeit erregt. Bei Webcrawlern sind HTTP-Anfragen ein wichtiger Link. In diesem Artikel werden die gängigen HTTP-Anfragemethoden in PHP-Webcrawlern ausführlich vorgestellt. 1. HTTP-Anfragemethode Die HTTP-Anfragemethode bezieht sich auf die Anfragemethode, die der Client beim Senden einer Anfrage an den Server verwendet. Zu den gängigen HTTP-Anfragemethoden gehören GET, POST und PU

Wie verwende ich PHP und Swoole für die groß angelegte Webcrawler-Entwicklung? Einleitung: Mit der rasanten Entwicklung des Internets ist Big Data zu einer der wichtigsten Ressourcen in der heutigen Gesellschaft geworden. Um an diese wertvollen Daten zu gelangen, wurden Webcrawler entwickelt. Webcrawler können automatisch verschiedene Websites im Internet besuchen und dort benötigte Informationen extrahieren. In diesem Artikel untersuchen wir, wie man PHP und die Swoole-Erweiterung verwendet, um effiziente, umfangreiche Webcrawler zu entwickeln. 1. Verstehen Sie die Grundprinzipien von Webcrawlern. Die Grundprinzipien von Webcrawlern sind sehr einfach.

Mit der rasanten Entwicklung des Internets sind Daten zu einer der wichtigsten Ressourcen im heutigen Informationszeitalter geworden. Als Technologie zur automatischen Erfassung und Verarbeitung von Netzwerkdaten erregen Webcrawler immer mehr Aufmerksamkeit und Anwendung. In diesem Artikel wird erläutert, wie Sie mit PHP einen einfachen Webcrawler entwickeln und die Funktion zum automatischen Abrufen von Netzwerkdaten realisieren. 1. Überblick über Web Crawler Web Crawler ist eine Technologie, die automatisch Netzwerkressourcen abruft und verarbeitet. Ihr Hauptarbeitsprozess besteht darin, das Browserverhalten zu simulieren, automatisch auf bestimmte URL-Adressen zuzugreifen und alle Informationen zu extrahieren.

Anmerkungen zur PHP-Studie: Webcrawler und Datenerfassung Einführung: Ein Webcrawler ist ein Tool, das automatisch Daten aus dem Internet crawlt. Es kann menschliches Verhalten simulieren, Webseiten durchsuchen und die erforderlichen Daten sammeln. Als beliebte serverseitige Skriptsprache spielt PHP auch im Bereich Webcrawler und Datenerfassung eine wichtige Rolle. In diesem Artikel wird erklärt, wie man einen Webcrawler mit PHP schreibt, und praktische Codebeispiele bereitgestellt. 1. Grundprinzipien von Webcrawlern Die Grundprinzipien von Webcrawlern bestehen darin, HTTP-Anfragen zu senden, die H-Antwort des Servers zu empfangen und zu analysieren.
