Utilisation de PHP Snoopy : 1. [fetch($URI)] pour capturer le contenu de la page Web ; 2. [fetchtext($URI)] pour supprimer les balises HTML et autres données non pertinentes ; ($ URI)] Renvoie le contenu du formulaire dans la page Web.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 5.6, ordinateur DELL G3.
Utilisation de PHP Snoopy :
Méthodes et exemples de la classe Snoopy :
1, fetch($URI)
C'est la méthode utilisée pour explorer le contenu des pages Web.
Le paramètre $URI est l'adresse URL de la page Web explorée.
Les résultats récupérés sont stockés dans $this->results.
Si vous grattez une image, Snoopy suivra chaque image et la stockera dans un tableau, puis la stockera dans $this->results.
2. fetchtext($URI)
Cette méthode est similaire à fetch() La seule différence est que cette méthode supprimera les balises HTML et autres données non pertinentes et ne renverra que le contenu du texte dans le fichier. page web.
3. fetchform($URI)
Cette méthode est similaire à fetch() La seule différence est que cette méthode supprimera les balises HTML et autres données non pertinentes et ne renverra que le contenu du formulaire (formulaire). dans la page Internet.
4. fetchlinks($URI)
Cette méthode est similaire à fetch() La seule différence est que cette méthode supprimera les balises HTML et autres données non pertinentes et ne renverra que le lien sur le Web. page.
Par défaut, les liens relatifs seront automatiquement complétés et convertis en URL complètes.
5. submit($URI,$formvars)
Cette méthode envoie un formulaire de confirmation à l'adresse du lien spécifiée par $URL. $formvars est un tableau qui stocke les paramètres du formulaire.
6. submittext($URI,$formvars)
Cette méthode est similaire à submit(). La seule différence est que cette méthode supprimera les balises HTML et autres données non pertinentes et ne renverra que le contenu textuel du fichier. page Web après la connexion.
7. submitlinks($URI)
Cette méthode est similaire à submit() La seule différence est que cette méthode supprimera les balises HTML et autres données non pertinentes et renverra uniquement le lien sur le Web. page.
Par défaut, les liens relatifs seront automatiquement complétés et convertis en URL complètes.
Attributs de classe de collection Snoopy : (la valeur par défaut est entre parenthèses)
$hôte hôte connecté
$port port connecté
$proxy_host L'hôte proxy utilisé, le cas échéant)
$informations sur la source de référence, le cas échéant
$cookies cookies le cas échéant
$rawheaders autres informations d'en-tête, le cas échéant any
$maxredirs Nombre maximum de redirections, 0=non autorisé (5)
$offsiteok autoriser ou non les redirections hors site (true)
$expandlinks. S'il faut lier tous les liens Complétez l'adresse complète (vrai)
$nom d'utilisateur d'authentification utilisateur, le cas échéant
$nom d'utilisateur d'authentification pass, le cas échéant
$accepter http accepter Tapez (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$error Où signaler l'erreur, le cas échéant
$response_code renvoyé par le serveur Code de réponse
$headers Informations d'en-tête renvoyées par le serveur
$maxlength Longueur maximale des données renvoyées
$read_timeout Délai d'expiration de l'opération de lecture (nécessite PHP 4 Beta 4+) Définir à 0 sans délai d'attente
$timed_out Si une opération de lecture expire, cet attribut renvoie vrai (nécessite PHP 4 Beta 4+)
$maxframes Le nombre maximum d'images autorisées à être suivies
$status L'état du http capturé
$temp_dir Le répertoire de fichiers temporaires (/tmp) dans lequel le serveur Web peut écrire
$curl_path Le répertoire du binaire cURL, s'il n'y a pas de binaire cURL, définissez-le simplement sur false
Ce qui suit est un exemple :Le code est le suivant :
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";
Le code est le suivant :
<?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 //获取表单 ?>
Le code est le suivant :
<?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;//提交后只返回 链接 ?>
Le code est le suivant. :
<?php $formvars["username"] = "lanfengye"; $formvars["pwd"] = "lanfengye"; $action = "https://www.jb51.net"; include "snoopy.php"; $snoopy = new Snoopy; $snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //伪装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; ?>
Avec le code de vérification, vérifiez l'IP pour voter, vous pouvez voter en continu.
ps : Déguiser l'IP ici revient en fait à déguiser l'en-tête http, donc l'IP obtenue via
ne peut pas être déguisée, mais celles obtenues via l'en-tête http (peuvent empêcher le proxy) vous pouvez créer votre propre IP.Quant à la façon de vérifier le code, permettez-moi de vous expliquer brièvement : REMOTE_ADDR
Utilisez d'abord un navigateur ordinaire pour afficher la page, recherchez l'ID de session correspondant au code de vérification, puis notez l'ID de session et valeurs du code de vérification. Suivant Utilisez simplement Snoopy pour le simuler.
Comme il s'agit du même identifiant de session, le code de vérification obtenu est le même que celui saisi pour la première fois.
Parfois, nous devrons peut-être simuler plus de choses, Snoopy y a complètement pensé pour nous<?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 //返回报错信息
?>
Programmation PHP de l'entrée à la maîtrise
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!