Heim >Backend-Entwicklung >PHP-Problem >Was ist die Verwendung von PHP Snoopy

Was ist die Verwendung von PHP Snoopy

coldplay.xixi
coldplay.xixiOriginal
2021-03-11 17:54:122260Durchsuche

php-Snoopy-Nutzung: 1. [fetch($URI)] zum Erfassen des Inhalts der Webseite 2. [fetchtext($URI)] zum Entfernen von HTML-Tags und anderen irrelevanten Daten 3. [fetchform($URI)“ ] um den Inhalt des Formulars auf der Webseite zurückzugeben.

Was ist die Verwendung von PHP Snoopy

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP Version 5.6, DELL G3-Computer.

PHP-Snoopy-Verwendung:

Snoopy-Klassenmethoden und Beispiele:

1, fetch($URI)fetch($URI)

这是为了抓取网页的内容而使用的方法。

$URI参数是被抓取网页的URL地址。

抓取的结果被存储在 $this->results 中。

如果你正在抓取的是一个框架,Snoopy将会将每个框架追踪后存入数组中,然后存入 $this->results。

2、fetchtext($URI)

本方法类似于fetch(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中的文字内容。

3、fetchform($URI)

本方法类似于fetch(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中表单内容(form)。

4、fetchlinks($URI)

本方法类似于fetch(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。

默认情况下,相对链接将自动补全,转换成完整的URL。

5、submit($URI,$formvars)

本方法向$URL指定的链接地址发送确认表单。$formvars是一个存储表单参数的数组。

6、submittext($URI,$formvars)

本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回登陆后网页中的文字内容。

7、submitlinks($URI)

本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。

默认情况下,相对链接将自动补全,转换成完整的URL。

Snoopy采集类属性: (默认值在括号里)

$host 连接的主机

$port 连接的端口

$proxy_host 使用的代理主机,如果有的话

$proxy_port 使用的代理主机端口,如果有的话

$agent 用户代理伪装 (Snoopy v0.1)

$referer 来路信息,如果有的话

$cookies cookies 如果有的话

$rawheaders 其他的头信息, 如果有的话

$maxredirs 最大重定向次数, 0=不允许 (5)

$offsiteok whether or not to allow redirects off-site. (true)

$expandlinks 是否将链接都补全为完整地址 (true)

$user 认证用户名, 如果有的话

$pass 认证用户名, 如果有的话

$accept http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)

$error 哪里报错, 如果有的话

$response_code 从服务器返回的响应代码

$headers 从服务器返回的头信息

$maxlength 最长返回数据长度

$read_timeout 读取操作超时 (requires PHP 4 Beta 4+) 设置为0为没有超时

$timed_out 如果一次读取操作超时了,本属性返回 true (requires PHP 4 Beta 4+)

$maxframes 允许追踪的框架最大数量

$status 抓取的http的状态

$temp_dir 网页服务器能够写入的临时文件目录 (/tmp)

$curl_path cURL binary 的目录, 如果没有cURL binary就设置为 false

下面是一个示例:

代码如下:

include "Snoopy.class.php";
 $snoopy = new Snoopy;
 
 $snoopy->proxy_host = "https://www.jb51.net";
 $snoopy->proxy_port = "80";
 
 $snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
 $snoopy->referer = "https://www.jb51.net";
 
 $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("https://www.jb51.net"))
 {
 echo "<PRE>".htmlspecialchars($snoopy->results)."
\n"; } else echo "error fetching document: ".$snoopy->error."\n";

获取指定url内容

代码如下:

<?php
 $url = "https://www.jb51.net";
 include("snoopy.php");
 $snoopy = new Snoopy;
 $snoopy->fetch($url); //获取所有内容
 echo $snoopy->results; //显示结果
 //可选以下
 $snoopy->fetchtext //获取文本内容(去掉html代码)
 $snoopy->fetchlinks //获取链接
 $snoopy->fetchform  //获取表单
 ?>

表单提交

代码如下:

<?php
$formvars["username"] = "admin";
$formvars["pwd"] = "admin";
$action = "https://www.jb51.net";//</a>表单提交地址
$snoopy->submit($action,$formvars);//$formvars为提交的数组
echo $snoopy->results; //获取表单提交后的 返回的结果
//可选以下
$snoopy->submittext; //提交后只返回 去除html的 文本
$snoopy->submitlinks;//提交后只返回 链接
?>

既然已经提交的表单 那就可以做很多事情 接下来我们来伪装ip,伪装浏览器

伪装浏览器

代码如下:

<?php
$formvars["username"] = "lanfengye";
$formvars["pwd"] = "lanfengye";
$action = "https://www.jb51.net";
include "snoopy.php";
$snoopy = new Snoopy;
$snoopy->cookies["PHPSESSID"] = &#39;fc106b1918bd522cc863f36890e6fff7&#39;; //伪装sessionid
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; //伪装浏览器
$snoopy->referer = "https://www.jb51.net"; //伪装来源页地址 http_referer
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息
$snoopy->rawheaders["X_FORWARDED_FOR"] = "127.0.0.101"; //伪装ip
$snoopy->submit($action,$formvars);
echo $snoopy->results;
?>

原来我们可以伪装session 伪装浏览器 ,伪装ip, haha 可以做很多事情了。

例如:带验证码,验证ip 投票, 可以不停的投。

ps:这里伪装ip ,其实是伪装http头, 所以一般的通过 REMOTE_ADDR

Dies ist die Methode, die zum Crawlen 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.

2. 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 die Webseite.

3. fetchform($URI)Diese Methode ähnelt fetch(). Der einzige Unterschied besteht darin, dass diese Methode HTML-Tags und andere irrelevante Daten entfernt und nur den Formularinhalt zurückgibt (. bilden ).

4. fetchlinks($URI)🎜🎜Diese Methode ähnelt fetch(). Der einzige Unterschied besteht darin, dass diese Methode HTML-Tags und andere irrelevante Daten entfernt und nur den Link zurückgibt Webseite. 🎜🎜Standardmäßig werden relative Links automatisch vervollständigt und in vollständige URLs umgewandelt. 🎜🎜5. submit($URI,$formvars)🎜🎜Diese Methode sendet ein Bestätigungsformular an die durch $URL angegebene Linkadresse. $formvars ist ein Array, das Formularparameter speichert. 🎜🎜6. submittext($URI,$formvars)🎜🎜Diese Methode ähnelt subscribe(). Der einzige Unterschied besteht darin, dass diese Methode HTML-Tags und andere irrelevante Daten entfernt und nur die zurückgibt Login-Textinhalt in . 🎜🎜7. submitlinks($URI)🎜🎜Diese Methode ähnelt subscribe(). Der einzige Unterschied besteht darin, dass diese Methode HTML-Tags und andere irrelevante Daten entfernt und nur den Link zurückgibt Webseite. 🎜🎜Standardmäßig werden relative Links automatisch vervollständigt und in vollständige URLs umgewandelt. 🎜🎜🎜Snoopy-Sammlungsklassenattribute: (Standardwert steht in Klammern)🎜🎜🎜🎜$host Der verbundene Host 🎜🎜$port Der verbundene Port 🎜🎜$proxy_host Der verwendete Proxy-Host, falls vorhanden 🎜🎜$proxy_port verwendeter Proxy-Host-Port , falls vorhanden 🎜🎜$agent Tarnung des Benutzeragenten (Snoopy v0.1) 🎜🎜$Referer-Quelleninformationen, falls vorhanden 🎜🎜$cookies Cookies, falls vorhanden 🎜🎜$rawheaders Andere Header-Informationen, falls vorhanden 🎜🎜$maxredirs Die maximale Anzahl von Weiterleitungen, 0=nicht erlaubt (5)🎜🎜$offsiteok, ob Weiterleitungen außerhalb der Website zugelassen werden sollen oder nicht (true)🎜🎜$expandlinks Ob alle Links vervollständigt werden sollen, um die Adresse zu vervollständigen (true)🎜🎜$Benutzerauthentifizierung, Benutzername, wenn beliebig 🎜🎜$Pass-Authentifizierungsbenutzername, falls vorhanden 🎜🎜$accept HTTP-Akzeptanztyp (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)🎜🎜$error Wo der Fehler gemeldet wird , falls vorhanden🎜🎜$response_code Der vom Server zurückgegebene Antwortcode🎜🎜$headers Die vom Server zurückgegebenen Header-Informationen🎜🎜$maxlength Die längste zurückgegebene Datenlänge🎜🎜 $read_timeout Timeout für Lesevorgang (erfordert PHP 4 Beta 4+) Eingestellt auf 0 für keine Zeitüberschreitung 🎜🎜$timed_out Wenn bei einem Lesevorgang eine Zeitüberschreitung auftritt, gibt dieses Attribut „true“ zurück (erfordert PHP 4 Beta 4+) 🎜🎜$maxframes ermöglicht die Verfolgung der maximalen Anzahl von Frames🎜🎜$status Der Status des erfassten http🎜 🎜$temp_dir Das temporäre Dateiverzeichnis (/tmp), in das der Webserver schreiben kann🎜🎜$curl_path Das Verzeichnis der cURL-Binärdatei. Wenn keine cURL-Binärdatei vorhanden ist, setzen Sie es auf false🎜🎜 🎜Das Folgende ist ein Beispiel: 🎜🎜 Der Code lautet wie folgt:
🎜
<?php
$snoopy->proxy_host = "https://www.jb51.net";
$snoopy->proxy_port = "8080"; //使用代理
$snoopy->maxredirs = 2; //重定向次数
$snoopy->expandlinks = true; //是否补全链接 在采集的时候经常用到
// 例如链接为 /images/taoav.gif 可改为它的全链接 <a href="https://www.jb51.net/images/taoav.gif">https://www.jb51.net/images/taoav.gif</a>
$snoopy->maxframes = 5 //允许的最大框架数
//注意抓取框架的时候 $snoopy->results 返回的是一个数组
$snoopy->error //返回报错信息
?>
🎜Holen Sie sich den Inhalt der angegebenen URL🎜🎜Der Code lautet wie folgt:
🎜rrreee🎜Formularübermittlung🎜🎜Der Code lautet wie folgt:
🎜 rrreee🎜Da es nun soweit ist, können Sie mit dem übermittelten Formular eine Menge Dinge tun. Als nächstes verschleiern wir die IP und den Browser🎜🎜🎜Verstecken Sie den Browser🎜🎜🎜Der Code lautet wie folgt:
🎜rrreee🎜Es dreht sich heraus, dass wir die Sitzung verschleiern können, den Browser verschleiern und die IP verschleiern können. Haha, Sie können eine Menge Dinge tun. 🎜🎜🎜Zum Beispiel: 🎜Mit Bestätigungscode, IP bestätigen, um abzustimmen, können Sie kontinuierlich abstimmen. 🎜🎜🎜ps: 🎜Das Verschleiern der IP hier bedeutet eigentlich das Verschleiern des http-Headers, sodass die über REMOTE_ADDR erhaltene IP nicht verschleiert werden kann, aber die über den http-Header erhaltenen IP-Adressen (die Proxying verhindern können) sind Ihre Art Sie können Ihre eigene IP erstellen. 🎜🎜Über die Überprüfung des Codes sprechen wir kurz: 🎜🎜Verwenden Sie zunächst einen normalen Browser, um die Seite anzuzeigen, suchen Sie die Sitzungs-ID, die dem Bestätigungscode entspricht, notieren Sie die Sitzungs-ID und den Wert des Bestätigungscodes und fälschen Sie sie dann mit Snoopy . 🎜🎜🎜Prinzip: 🎜Da es sich um dieselbe Sitzungs-ID handelt, ist der erhaltene Bestätigungscode derselbe wie der, der zum ersten Mal eingegeben wurde. 🎜🎜Manchmal müssen wir vielleicht noch mehr Dinge vortäuschen, Snoopy hat das komplett für uns bedacht🎜rrreee🎜🎜Empfehlungen für entsprechende Videos: 🎜PHP-Programmierung vom Einstieg bis zum Master🎜🎜🎜

Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von PHP Snoopy. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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