Heim Backend-Entwicklung Python-Tutorial [Python] Web Crawler (4): Einführung und praktische Anwendungen von Opener und Handler

[Python] Web Crawler (4): Einführung und praktische Anwendungen von Opener und Handler

Jan 21, 2017 pm 01:50 PM

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 Login kopieren

Nach dem Ausführen können Sie die URL sehen, auf die der echte Link verweist:

[Python] Web Crawler (4): Einführung und praktische Anwendungen von Opener und Handler

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()
Nach dem Login kopieren

Die Ergebnisse der Operation sind wie folgt, Sie kann die Seite sehen Zugehörige Informationen:

[Python] Web Crawler (4): Einführung und praktische Anwendungen von Opener und Handler

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)
Nach dem Login kopieren

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). !


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie eine leistungsstarke Webcrawler-Anwendung mit React und Python So erstellen Sie eine leistungsstarke Webcrawler-Anwendung mit React und Python Sep 26, 2023 pm 01:04 PM

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

Entwickeln Sie effiziente Webcrawler und Daten-Scraping-Tools mit den Sprachen Vue.js und Perl Entwickeln Sie effiziente Webcrawler und Daten-Scraping-Tools mit den Sprachen Vue.js und Perl Jul 31, 2023 pm 06:43 PM

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

Was ist ein Webcrawler? Was ist ein Webcrawler? Jun 20, 2023 pm 04:36 PM

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.

So schreiben Sie einen einfachen Webcrawler mit PHP So schreiben Sie einen einfachen Webcrawler mit PHP Jun 14, 2023 am 08:21 AM

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

Detaillierte Erläuterung der HTTP-Anfragemethode des PHP-Webcrawlers Detaillierte Erläuterung der HTTP-Anfragemethode des PHP-Webcrawlers Jun 17, 2023 am 11:53 AM

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? Wie verwende ich PHP und Swoole für die groß angelegte Webcrawler-Entwicklung? Jul 21, 2023 am 09:09 AM

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.

Beispiel für die Entwicklung eines einfachen PHP-Webcrawlers Beispiel für die Entwicklung eines einfachen PHP-Webcrawlers Jun 13, 2023 pm 06:54 PM

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 Anmerkungen zur PHP-Studie: Webcrawler und Datenerfassung Oct 08, 2023 pm 12:04 PM

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.

See all articles