Maison > développement back-end > tutoriel php > PHP CURL obtient des cookies pour simuler un exemple de code de méthode de connexion

PHP CURL obtient des cookies pour simuler un exemple de code de méthode de connexion

怪我咯
Libérer: 2023-03-13 10:46:01
original
2408 Les gens l'ont consulté

Utilisez la fonction curl de PHP pour implémenter une connexion simulée.

Pour extraire une partie des données de la recherche de Google, j'ai découvert que Google empêche le logiciel de capturer ses données. Dans le passé, forger USER-AGENT pouvait capturer les données, mais maintenant c'est le cas. ça ne marche pas. En utilisant les données de capture de paquets, nous avons constaté que Google jugeait les cookiess. Lorsque vous n'avez pas de cookies, il renverra directement 302 sauts, et il y a des dizaines de 302 sauts d'affilée, et aucune donnée ne peut être obtenue. capturé du tout.
Par conséquent, lors de l'envoi d'une commande de recherche, vous devez d'abord extraire et enregistrer les cookies, puis utiliser le cookie enregistré pour envoyer à nouveau la commande de recherche afin de capturer les données normalement. C'est en fait la même chose que la connexion simulée du forum. Vous devez d'abord effectuer un POST pour vous connecter, récupérer les cookies et les enregistrer, puis utiliser les cookies pour y accéder.
Le code PHP est le suivant :

Le code est le suivant :

<?php
header(&#39;Content-Type: text/html; charset=utf-8&#39;);

$cookie_file = dirname(FILE).&#39;/cookie.txt&#39;;
//$cookie_file = tempnam("tmp","cookie");

//先获取cookies并保存
$url = "http://www.google.com.hk";
$ch = curl_init($url); //初始化
curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出
curl_setopt($ch, CURLOPT_COOKIEJAR,  $cookie_file); //存储cookies
curl_exec($ch);
curl_close($ch);

//使用上面保存的cookies再次访问
$url = "http://www.google.com.hk/search?oe=utf8&ie=utf8&source=uds&hl=zh-CN&q=qq";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //使用上面获取的cookies
$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal