Heim > Artikel > Backend-Entwicklung > Verwendung der PHP-Datenerfassungsklasse Snoopy
Detaillierte Erklärung der PHP-Sammlung Snoopy
Detaillierte Erklärung der Snoopy-Anwendung des PHP-Sammlungstools
Snoopy ist eine PHP-Klasse, die zur Simulation der Funktionen eines Browsers verwendet wird und Webinhalte abrufen und Formulare senden kann. Für den korrekten Betrieb von Snoopy ist es erforderlich, dass die PHP-Version Ihres Servers 4 oder höher ist und PCRE (Perl-kompatible reguläre Ausdrücke) unterstützt, was von grundlegenden LAMP-Diensten unterstützt wird.
1. Einige Funktionen von Snoopy:
1. Den Inhalt der Webseite abrufen
2. Den Textinhalt der Webseite abrufen (HTML-Tags entfernen) fetchtext
3. Die Links abrufen und Formulare der Webseite fetchlinks fetchform
4. Unterstützung des Proxy-Hosts
5. Unterstützung der grundlegenden Überprüfung von Benutzername/Passwort
6. Unterstützung der Einstellung von user_agent, referer (Quelle), Cookies und Header-Inhalt (Header-Datei)
7. Unterstützt die Browserumleitung und kann die Umleitungstiefe steuern
8. Kann Links auf Webseiten in hochwertige URLs erweitern (Standard)
9. Daten übermitteln und Rückgabewerte erhalten
10. Unterstützung Tracking-HTML-Framework
11. Unterstützt die Weiterleitung von Cookies, wenn PHP4 oder höher erforderlich ist. Da es sich um eine PHP-Klasse handelt, ist eine Erweiterung der Unterstützung nicht erforderlich. Dies ist die beste Wahl, wenn der Server Curl nicht unterstützt.
2. Klassenmethode:
fetch($URI)
——————
Dies ist die Methode, die zum Erfassen des Inhalts der Webseite verwendet wird. Der $URI-Parameter ist die URL-Adresse der gecrawlten Webseite. Die abgerufenen Ergebnisse werden in $this->results gespeichert. Wenn Sie einen Frame scrapen, verfolgt Snoopy jeden Frame, speichert ihn in einem Array und speichert ihn dann in $this->results.
fetchtext($URI)
——————
Diese Methode ähnelt fetch(). Der einzige Unterschied besteht darin, dass diese Methode HTML-Tags und andere irrelevante Daten entfernt und nur den Textinhalt zurückgibt auf der Webseite.
fetchform($URI)
——————
Diese Methode ähnelt fetch(). Der einzige Unterschied besteht darin, dass diese Methode HTML-Tags und andere irrelevante Daten entfernt und nur das Formular zurückgibt Inhalt der Webseite (Formular).
fetchlinks($URI)
————-
Diese Methode ähnelt fetch(). Der einzige Unterschied besteht darin, dass diese Methode HTML-Tags und andere irrelevante Daten entfernt und nur die Links zurückgibt die Webseite (Link).
Standardmäßig werden relative Links automatisch vervollständigt und in vollständige URLs umgewandelt.
submit($URI,$formvars)
————————-
Diese Methode sendet ein Bestätigungsformular an die durch $URL angegebene Linkadresse. $formvars ist ein Array, das Formularparameter speichert.
submittext($URI,$formvars)
————————–
Diese Methode ähnelt subscribe(). Der einzige Unterschied besteht darin, dass diese Methode HTML-Tags und andere irrelevante Daten entfernt . Es wird nur der Textinhalt der Webseite nach der Anmeldung zurückgegeben.
submitlinks($URI)
————-
Diese Methode ähnelt subscribe(). Der einzige Unterschied besteht darin, dass diese Methode HTML-Tags und andere irrelevante Daten entfernt und nur die Links zurückgibt die Webseite (Link).
Standardmäßig werden relative Links automatisch vervollständigt und in vollständige URLs umgewandelt.
3. Klassenattribute: (Standardwert steht in Klammern)
$host Der verbundene Host
$port Der verbundene Port
$proxy_host Der verwendete Proxy-Host, falls vorhanden
$ Proxy_port Der Proxy Verwendeter Host-Port, falls vorhanden
$agent Tarnung des Benutzeragenten (Snoopy v0.1)
$Referer-Quellinformationen, falls vorhanden
$cookies Cookies, falls vorhanden
$rawheaders Andere Header-Informationen, falls vorhanden
$maxredirs Maximale Anzahl von Weiterleitungen, 0=nicht zulässig (5)
$offsiteok, ob Weiterleitungen außerhalb der Website zugelassen werden sollen oder nicht (true)
$expandlinks Ob alle Links zu vollständigen Adressen vervollständigt werden sollen (true). )
$Benutzername für die Authentifizierung, falls verfügbar
$Benutzername für die Authentifizierung, falls verfügbar
$accept HTTP-Akzeptanztyp ( image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */ *)
$error Wo kann der Fehler gemeldet werden, falls vorhanden
$response_code Der vom Server zurückgegebene Antwortcode
$headers Vom Server zurückgegebene Header-Informationen
$maxlength Die längste zurückgegebene Datenlänge
$read_timeout Timeout des Lesevorgangs (erfordert PHP 4 Beta 4)
Auf 0 gesetzt, um kein Timeout zu erhalten
$timed_out Wenn einmal gelesen Der Vorgang ist abgelaufen, gibt dieses Attribut „true“ zurück (erfordert PHP 4 Beta 4)
$maxframes Die maximal zulässige Anzahl von Frames, die verfolgt werden dürfen
$status Der Status des erfassten http
$temp_dir Die temporäre Datei, in die der Webserver schreiben kann. Verzeichnis (/tmp)
$curl_path cURL-Binärverzeichnis , wenn es keine cURL-Binärdatei gibt, setzen Sie sie auf false
4. Das Folgende ist die Demo:
$snoopy = new Snoopy-> ;proxy_host = "www.baidu.com";
$snoopy->proxy_port = "8080";
$snoopy->agent = "(kompatibel; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98 )“;
$snoopy->referer = „http://www.baidu.com/“;
$snoopy->cookies[“SessionID“] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://www.baidu.com"))
{
echo "
".htmlspecialchars($snoopy->results). "n";