Maison développement back-end tutoriel php php curl 模拟登录百度首页解决方案

php curl 模拟登录百度首页解决方案

Jun 13, 2016 pm 01:36 PM
curl post quot

php curl 模拟登录百度首页
代码如下:

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php $url = "https://passport.baidu.com/?login&tpl=mn";
//$url = "http://www.baidu.com/";
$cookdir = "d:/www/html/mndl/cookie.txt";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //这句是必须有的  设定为不验证证书 下面是不验证host。
curl_setopt ($ch, CURLOPT_HEADER, 0);   
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookdir); //保存cookies 发送用户浏览器信息 发送访问来源
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
curl_setopt ($ch, CURLOPT_REFERER, "http://www.baidu.com/");
$contents = curl_exec($ch);
curl_close($ch);

/* 原始表单样式
                <input type="hidden" name="tpl_ok" value="">
                <input type="hidden" name="next_target" value="">
                <input type="hidden" name="tpl" value="mn">
                <input type="hidden" name="skip_ok" value="">
                <input type="hidden" name="aid" value="">
                <input type="hidden" name="need_pay" value="">
                <input type="hidden" name="need_coin" value="">
                <input type="hidden" name="pay_method" value="">
                <input type="hidden" id="u" name="u" value="http://www.baidu.com/">
                <input type="hidden" name="return_method" value="get">
                <input type="hidden" name="more_param" value="">
                <input type="hidden" name="return_type" value="">
                <input type="hidden" name="psp_tt" value="0">
                <input type="hidden" id="password" name="password" value="">
                <input type="hidden" name="safeflg" id="safeflg" value="">
                <input type="hidden" name="isphone" value="tpl">
*/
$post_fields = array();
$post_fields = preg_data($contents,'aid',$post_fields);
$post_fields = preg_data($contents,'isphone',$post_fields);
$post_fields['mem_pass'] = 'on'; //post 数据数组  记住我的登录状态
$post_fields = preg_data($contents,'more_param',$post_fields);
$post_fields = preg_data($contents,'need_coin',$post_fields);
$post_fields = preg_data($contents,'need_pay',$post_fields);
$post_fields = preg_data($contents,'next_target',$post_fields);
$post_fields['password'] = 'password'; //post 数据数组  记住我的登录状态
$post_fields = preg_data($contents,'pay_method',$post_fields);
$post_fields = preg_data($contents,'psp_tt',$post_fields);
$post_fields = preg_data($contents,'return_method',$post_fields);
$post_fields = preg_data($contents,'return_type',$post_fields);
$post_fields = preg_data2($contents,'safeflg',$post_fields);
$post_fields = preg_data($contents,'skip_ok',$post_fields);
$post_fields = preg_data($contents,'tpl',$post_fields);
$post_fields = preg_data($contents,'tpl_ok',$post_fields);
$post_fields['u'] = 'http://www.baidu.com/';
$post_fields['username'] = 'username'; //post 数据数组  记住我的登录状态
$post_fields['verifycode'] = '';

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookdir);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
curl_setopt ($ch, CURLOPT_REFERER, "https://passport.baidu.com/?login&tpl=mn");
curl_exec($ch);
curl_close($ch);

$url = "http://www.baidu.com/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookdir);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
curl_setopt ($ch, CURLOPT_REFERER, "http://www.baidu.com/n");

$contents = curl_exec($ch);print_r($contents);die;
curl_close($ch);

exit;
function preg_data($source,$chr,$array){
        preg_match('/<input>/i', $source, $matches);
        if(!empty($matches)) {
            $a = $matches[1];
        } else {
            die('Not found the '.$chr.'.');
        }
        $array[$chr]=$a;
        return $array;
}function preg_data2($source,$chr,$array){
        preg_match('/<input>/i', $source, $matches);
        if(!empty($matches)) {
            $a = $matches[1];
        } else {
            die('Not found the '.$chr.'.');
        }
        $array[$chr]=$a;
        return $array;
}
?>

 <div class="clear">
                 
              
              
        
            </div>
Copier après la connexion
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)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
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)

Comment réaliser la conversion mutuelle entre les requêtes CURL et python en python Comment réaliser la conversion mutuelle entre les requêtes CURL et python en python May 03, 2023 pm 12:49 PM

curl et Pythonrequests sont des outils puissants pour envoyer des requêtes HTTP. Alors que curl est un outil de ligne de commande qui vous permet d'envoyer des requêtes directement depuis le terminal, la bibliothèque de requêtes de Python fournit un moyen plus programmatique d'envoyer des requêtes à partir du code Python. La syntaxe de base pour convertir curl en commande Pythonrequestscurl est la suivante : curl[OPTIONS]URL Lors de la conversion de la commande curl en requête Python, nous devons convertir les options et l'URL en code Python. Voici un exemple de commande curlPOST : curl-XPOST https://example.com/api

Tutoriel sur la mise à jour de la version curl sous Linux ! Tutoriel sur la mise à jour de la version curl sous Linux ! Mar 07, 2024 am 08:30 AM

Pour mettre à jour la version curl sous Linux, vous pouvez suivre les étapes ci-dessous : Vérifiez la version actuelle de curl : Tout d'abord, vous devez déterminer la version de curl installée dans le système actuel. Ouvrez un terminal et exécutez la commande suivante : curl --version Cette commande affichera les informations sur la version actuelle de curl. Confirmer la version curl disponible : Avant de mettre à jour curl, vous devez confirmer la dernière version disponible. Vous pouvez visiter le site officiel de curl (curl.haxx.se) ou des sources de logiciels associées pour trouver la dernière version de curl. Téléchargez le code source de curl : à l'aide de curl ou d'un navigateur, téléchargez le fichier de code source pour la version curl de votre choix (généralement .tar.gz ou .tar.bz2).

Du début à la fin : Comment utiliser l'extension php cURL pour effectuer des requêtes HTTP Du début à la fin : Comment utiliser l'extension php cURL pour effectuer des requêtes HTTP Jul 29, 2023 pm 05:07 PM

Du début à la fin : Comment utiliser l'extension php cURL pour les requêtes HTTP Introduction : En développement web, il est souvent nécessaire de communiquer avec des API tierces ou d'autres serveurs distants. Utiliser cURL pour effectuer des requêtes HTTP est un moyen courant et puissant. Cet article expliquera comment utiliser PHP pour étendre cURL afin d'effectuer des requêtes HTTP et fournira quelques exemples de code pratiques. 1. Préparation Tout d'abord, assurez-vous que l'extension cURL est installée sur php. Vous pouvez exécuter php-m|grepcurl sur la ligne de commande pour vérifier

Sortie de PHP8.1 : introduction de curl pour le traitement simultané de plusieurs requêtes Sortie de PHP8.1 : introduction de curl pour le traitement simultané de plusieurs requêtes Jul 08, 2023 pm 09:13 PM

PHP8.1 publié : présentation de curl pour le traitement simultané de plusieurs requêtes. Récemment, PHP a officiellement publié la dernière version de PHP8.1, qui a introduit une fonctionnalité importante : curl pour le traitement simultané de plusieurs requêtes. Cette nouvelle fonctionnalité offre aux développeurs un moyen plus efficace et plus flexible de gérer plusieurs requêtes HTTP, améliorant ainsi considérablement les performances et l'expérience utilisateur. Dans les versions précédentes, la gestion de plusieurs requêtes nécessitait souvent de créer plusieurs ressources curl et d'utiliser des boucles pour envoyer et recevoir des données respectivement. Bien que cette méthode puisse atteindre l'objectif

Comment gérer la redirection 301 des pages web en PHP Curl ? Comment gérer la redirection 301 des pages web en PHP Curl ? Mar 08, 2024 am 11:36 AM

Comment gérer la redirection 301 des pages web dans PHPCurl ? Lorsque vous utilisez PHPCurl pour envoyer des requêtes réseau, vous rencontrerez souvent un code d'état 301 renvoyé par la page Web, indiquant que la page a été redirigée définitivement. Afin de gérer correctement cette situation, nous devons ajouter des options spécifiques et une logique de traitement à la requête Curl. Ce qui suit présentera en détail comment gérer la redirection 301 des pages Web dans PHPCurl et fournira des exemples de code spécifiques. Principe de traitement de la redirection 301 La redirection 301 signifie que le serveur renvoie un 30

qu'est-ce que Linux Curl qu'est-ce que Linux Curl Apr 20, 2023 pm 05:05 PM

Sous Linux, curl est un outil très pratique pour transférer des données vers et depuis le serveur. Il s'agit d'un outil de transfert de fichiers qui utilise des règles d'URL pour fonctionner sous la ligne de commande ; il prend en charge le téléchargement et le téléchargement de fichiers et constitue un outil de transfert complet. Curl fournit de nombreuses fonctions très utiles, notamment l'accès proxy, l'authentification des utilisateurs, le téléchargement et le téléchargement FTP, HTTP POST, la connexion SSL, la prise en charge des cookies, la reprise du point d'arrêt, etc.

Une brève analyse de la méthode POST en PHP avec des paramètres pour accéder à la page Une brève analyse de la méthode POST en PHP avec des paramètres pour accéder à la page Mar 23, 2023 am 09:15 AM

Pour les développeurs PHP, utiliser POST pour accéder à des pages avec des paramètres est une compétence de base. POST est une méthode d'envoi de données en HTTP. Il peut soumettre des données au serveur via des requêtes HTTP. La page de renvoi traite et saute la page côté serveur. Dans le développement réel, nous devons souvent utiliser POST avec des paramètres pour accéder aux pages afin d'atteindre certains objectifs fonctionnels.

Comment utiliser la publication des requêtes Python Comment utiliser la publication des requêtes Python Apr 29, 2023 pm 04:52 PM

Python simule le navigateur envoyant des demandes de publication au format importrequests request.postrequest.post(url,data,json,kwargs)#format de demande de publication request.get(url,params,kwargs)#Par rapport à la demande d'obtention, les paramètres d'envoi de demande de publication sont divisés en Le paramètre de données Forms ( x-www-form-urlencoded) json (application/json) prend en charge le format de dictionnaire et le format de chaîne. Le format de dictionnaire utilise la méthode json.dumps() pour convertir les données en chaîne au format json légal.

See all articles