Avec le développement continu d'Internet, la quantité d'informations a explosé et obtenir des informations précieuses est devenu un besoin pour de nombreuses personnes. Dans un tel environnement, la technologie des robots d’exploration a progressivement émergé et est devenue l’un des outils importants à l’ère du Big Data. La technologie Crawler a un large éventail d’applications et peut être utilisée dans de nombreux domaines tels que la surveillance de l’opinion publique sur les réseaux, l’analyse de données et l’exploration d’informations. Cet article explique comment implémenter un framework de robot d'exploration personnalisé à l'aide de PHP.
1. Principe du framework de robot d'exploration
Un robot d'exploration est un programme qui obtient automatiquement des informations sur une page Web. Il explore le texte d'une page Web et extrait des données précieuses pour l'analyse et l'utilisation. Le cadre du robot d'exploration constitue la base du programme d'exploration, qui comprend des méthodes personnalisées d'acquisition, d'analyse, de stockage et d'autres méthodes.
Le programme d'exploration est implémenté via le framework d'exploration. Le processus de base est le suivant :
2. Implémentation du framework d'exploration PHP
En PHP, les requêtes HTTP peuvent être implémentées via la bibliothèque CURL. CURL est une puissante bibliothèque réseau open source qui peut être utilisée pour traiter des URL (Uniform Resource Locator, Uniform Resource Locator) en PHP
Le code est le suivant :
$ch = curl_init(); // 初始化 cURL $options = array( CURLOPT_URL => $url, // 请求的 URL CURLOPT_RETURNTRANSFER => 1, // 返回原生的输出内容 CURLOPT_ENCODING => '', // 自动处理响应头中的 Transfer-Encoding CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'] // 模拟 user-agent ); curl_setopt_array($ch, $options); $result = curl_exec($ch); // 执行请求 curl_close($ch); // 关闭请求链接
Dans le code ci-dessus, utilisez d'abord la fonction curl_init(). pour initialiser CURL. Utilisez ensuite la fonction curl_setopt_array() pour définir divers paramètres de la requête CURL, y compris l'URL demandée, le renvoi du contenu de sortie natif, le traitement automatique du Transfer-Encoding dans l'en-tête de réponse et la simulation de l'agent utilisateur. Enfin, exécutez la requête via curl_exec() et fermez le lien de la requête. Après avoir exécuté le code ci-dessus, vous pouvez obtenir avec succès les informations sur la page Web du site Web cible.
En PHP, vous pouvez utiliser la classe DOMDocument pour analyser le texte HTML, qui fournit un ensemble d'interfaces DOM (Document Object Model) qui peuvent facilement analyser le texte HTML.
Le code est le suivant :
$doc = new DOMDocument(); $doc->loadHTML($result); // 加载 HTML 内容 $xpath = new DOMXPath($doc); $tags = $xpath->query('//tag') // 获取指定标签 foreach ($tags as $tag) { // 对标签内容进行解析 }
Le code ci-dessus crée d'abord un objet de la classe DOMDocument, puis charge le texte de la page Web via la fonction loadHTML(), puis obtient la balise spécifiée via la classe DOMXPath et analyse la balise contenu.
En PHP, les données peuvent être stockées via la base de données MySQL, qui fournit un ensemble d'interfaces PDO (PHP Data Objects, PHP Data Objects) pour des opérations de base de données pratiques.
Le code est le suivant :
$pdo = new PDO('mysql:host=$dbhost;dbname=$dbname', $username, $password); // 连接数据库 $sql = 'INSERT INTO table_name (field1, field2, ...) VALUES (:value1, :value2, ...)'; // SQL 语句 $stmt = $pdo->prepare($sql); // 预处理 SQL 语句 $stmt->bindParam(':param1', $value1); // 绑定参数 $stmt->bindParam(':param2', $value2); ... $stmt->execute(); // 执行 SQL 语句
Dans le code ci-dessus, utilisez d'abord l'objet PDO pour vous connecter à la base de données MySQL, puis utilisez l'instruction SQL pour insérer des données dans la table de données spécifiée, après avoir prétraité l'instruction SQL. en liant les paramètres, vous pouvez exécuter directement l'instruction SQL. Les données sont stockées avec succès dans la base de données.
3. Cas d'utilisation du framework Crawler
Après avoir implémenté le framework crawler, nous pouvons l'utiliser pour explorer n'importe quel site Web. Un cas d'utilisation simple sera démontré ci-dessous. Par exemple, nous devons maintenant explorer les informations de l'utilisateur Zhihu. Nous devons d'abord obtenir les informations de la page de l'utilisateur :
$url = "https://www.zhihu.com/people/xxx"; $result = getCurl($url);
Ensuite, nous analysons les informations de la page renvoyées via XPath et obtenons les informations cibles :
$doc = new DOMDocument(); $doc->loadHTML($result); $xpath = new DOMXPath($doc); // 用户名 $username = $xpath->query("//*[@class='ProfileHeader-name']/text()")->item(0)->nodeValue; // 签名 $userbio = $xpath->query("//div[@class='ProfileHeader-headline']/span//@title")->item(0)->nodeValue; // 关注数 $following_count = $xpath->query("//*[@class='NumberBoard-itemValue']/text()")->item(2)->nodeValue; // 粉丝数 $followers_count = $xpath->query("//*[@class='NumberBoard-itemValue']/text()")->item(3)->nodeValue;
Enfin, nous pouvons utiliser The. La base de données MySQL stocke les informations cibles obtenues :
$pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password'); $sql = "INSERT INTO `zhihu_users`(`username`, `userbio`, `following_count`, `followers_count`, `updated_at`) VALUES (:username, :userbio, :following_count, :followers_count, NOW())"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':username', $username); $stmt->bindParam(':userbio', $userbio); $stmt->bindParam(':following_count', $following_count); $stmt->bindParam(':followers_count', $followers_count); $stmt->execute();
Grâce à l'exemple de code ci-dessus, nous pouvons voir le processus d'utilisation de PHP pour implémenter un cadre de robot d'exploration personnalisé, y compris des opérations telles que l'obtention d'informations sur une page Web, l'analyse des informations sur une page Web et le stockage des résultats du traitement. . Grâce à ce cadre, nous pouvons facilement explorer et analyser le site Web cible et améliorer l'efficacité et la précision de l'application des données.
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!