Maison développement back-end tutoriel php Maîtriser les principales méthodes d'exploration de pages Web avec PHP

Maîtriser les principales méthodes d'exploration de pages Web avec PHP

Aug 01, 2020 pm 04:43 PM
php

Maîtriser les principales méthodes d'exploration de pages Web avec PHP

Le processus principal consiste à obtenir la page Web entière, puis à la faire correspondre avec des expressions régulières (critique).

Les principales méthodes d'exploration des pages PHP, il existe plusieurs méthodes basées sur l'expérience des seniors en ligne, mais elles ne sont pas encore utilisées, alors enregistrez-les et essayez-les plus tard.

Fonction 1.file()

Fonction 2.file_get_contents()

3.fopen()->fread()->fclose() mode

Méthode 4.curl (j'utilise principalement ceci)

5.mode socket de fonction fsockopen()

6. /projects/ snoopy/)

Fonction 7.file()

<?php
//定义url
$url=&#39;[http://t.qq.com](http://t.qq.com/)&#39;;//fiel函数读取内容数组
$lines_array=file($url);//拆分数组为字符串
$lines_string=implode(&#39;&#39;,$lines_array);//输出内容
echo $lines_string; 
Copier après la connexion

2 Utilisez la méthode file_get_contents pour l'implémenter, ce qui est relativement simple.

L'utilisation de file_get_contents et fopen doit activer l'espace allow_url_fopen. Méthode : modifiez php.ini et définissez allow_url_fopen = On Lorsque allow_url_fopen est désactivé, ni fopen ni file_get_contents ne peuvent ouvrir les fichiers distants.

$url="[http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml](http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml)";
$html=file_get_contents($url);
//如果出现中文乱码使用下面代码`
//$getcontent = iconv("gb2312", "utf-8",$html);
echo"<textarea style=&#39;width:800px;height:600px;&#39;>".$html."</textarea>";
Copier après la connexion

3. fopen()->fread()->fclose() Je ne l'ai pas encore utilisé, je l'ai écrit quand je l'ai vu

<?php
//定义url
$url=&#39;[http://t.qq.com](http://t.qq.com/)&#39;;//fopen以二进制方式打开 
$handle=fopen($url,"rb");//变量初始化
$lines_string="";//循环读取数据
do{
$data=fread($handle,1024);  
if(strlen($data)==0) {`
break; 
} 
$lines_string.=$data;
}while(true);//关闭fopen句柄,释放资源
fclose($handle);//输出内容
echo $lines_string;
Copier après la connexion

4. ).

L'utilisation de curl nécessite de l'espace pour activer curl. Méthode : Modifiez php.ini sous Windows, supprimez le point-virgule devant extension=php_curl.dll et copiez ssleay32.dll et libeay32.dll dans C:WINDOWSsystem32 ; installez l'extension curl sous Linux ;

<?php
header("Content-Type: text/html;charset=utf-8");
date_default_timezone_set(&#39;PRC&#39;);
$url = "https://***********ycare";//要爬取的网址
$res = curl_get_contents($url);//curl封装方法
preg_match_all(&#39;/<script>(.*?)<\/script>/&#39;,$res,$arr_all);//这个网页中数据通过js包过来,所以直接抓js就可以
preg_match_all(&#39;/"id"\:"(.*?)",/&#39;,$arr_all[1][1],$arr1);//从js块中匹配要的数据
$list = array_unique($arr1[1]);//(可省)保证不重复
//以下则是同理,循环则可
for($i=0;$i<=6;$i=$i+2){
  $detail_url = &#39;ht*****em/&#39;.$list[$i];
  $detail_res = curl_get_contents($detail_url);
  preg_match_all(&#39;/<script>(.*?)<\/script>/&#39;,$detail_res,$arr_detail);
  preg_match(&#39;/"desc"\:"(.*?)",/&#39;,$arr_detail[1][1],$arr_content);
  ***
    ***
    ***
  $ret=curl_post(&#39;http://**********cms.php&#39;,$result);//此脚本未放在服务器上,原因大家懂就好哈。
}
function curl_get_contents($url,$cookie=&#39;&#39;,$referer=&#39;&#39;,$timeout=300,$ishead=0) {
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1);
  curl_setopt($curl, CURLOPT_URL,$url);
  curl_setopt($curl, CURLOPT_TIMEOUT,$timeout);
  curl_setopt($curl, CURLOPT_USERAGENT,&#39;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36&#39;);
  if($cookie)
  {
    curl_setopt( $curl, CURLOPT_COOKIE,$cookie);
  }
  if($referer)
  {
    curl_setopt ($curl,CURLOPT_REFERER,$referer);
  }
  $ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;
  if ($ssl)
  {
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  }
  $res = curl_exec($curl);
  return $res;
  curl_close($curl);
}
//curl post数据到服务器
function curl_post($url,$data){
  $ch = curl_init();
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  //curl_setopt($ch,CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch,CURLOPT_USERAGENT,&#39;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36&#39;);
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_POST,true);
  curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
  $output = curl_exec($ch);
  curl_close($ch);
  return $output; 
}
?>
Copier après la connexion

5.fsockopen()Mode socket de fonction (je ne l'ai jamais utilisé auparavant, vous pouvez l'essayer à l'avenir)

La question de savoir si le mode socket peut être exécuté correctement est également liée à la paramètres du serveur. Vous pouvez le vérifier via phpinfo Vérifiez quels protocoles de communication sont activés sur le serveur

<?php
$fp = fsockopen("t.qq.com", 80, $errno, $errstr, 30);
if (!$fp) {
  echo "$errstr ($errno)<br />\n";
} else {
  $out = "GET / HTTP/1.1\r\n";
  $out .= "Host: t.qq.com\r\n";
  $out .= "Connection: Close\r\n\r\n";
  fwrite($fp, $out);
  while (!feof($fp)) {
    echo fgets($fp, 128);
  }
  fclose($fp);
}
Copier après la connexion

plug-in 6.snoopy, la dernière version est Snoopy-1.2.4.zip Dernière mise à jour : 2013-05- 30, il est recommandé à tout le monde d'utiliser

Utiliser le très populaire snoopy pour la collecte. Il s'agit d'un plug-in de collecte très puissant, et il est très pratique à utiliser. dedans pour simuler les informations du navigateur.

Remarque : la configuration de l'agent se trouve à la ligne 45 du fichier Snoopy.class.php. Veuillez rechercher "var formula input error_SERVER['HTTP_USER_AGENT']; dans le fichier pour obtenir les informations du navigateur. Copiez simplement le fichier. contenu renvoyé dans l'agent

<?php
//引入snoopy的类文件
require(&#39;Snoopy.class.php&#39;);
//初始化snoopy类
$snoopy=new Snoopy;
$url="[http://t.qq.com](http://t.qq.com/)";
//开始采集内容`
$snoopy->fetch($url);
//保存采集内容到$lines_string
$lines_string=$snoopy->results;
//输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;
Copier après la connexion

Apprentissage associé recommandé : tutoriel graphique php

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Journalisation CakePHP Journalisation CakePHP Sep 10, 2024 pm 05:26 PM

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Guide rapide CakePHP Guide rapide CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

See all articles