Heim > Backend-Entwicklung > PHP-Tutorial > CURL simuliert die Anmeldung und ruft Daten ab. Blog-Kategorie: Entwicklung

CURL simuliert die Anmeldung und ruft Daten ab. Blog-Kategorie: Entwicklung

巴扎黑
Freigeben: 2016-11-09 11:10:59
Original
1189 Leute haben es durchsucht

Bei Erfassungsvorgängen müssen wir manchmal einige Seiten erfassen, auf die nur nach der Anmeldung zugegriffen werden kann. Aber manchmal können wir die relevanten Seiten auch bei erfolgreicher Anmeldung nicht crawlen. Warum ist das so?

Nun, der wahrscheinlichste Grund ist, dass das Cookie nach erfolgreicher Anmeldung nicht weitergegeben wurde.

Bei einigen Websites, deren Sicherheitsmaßnahmen nicht sehr hoch sind, können wir uns über die PHP-Funktion curl_setopt anmelden.

<?php
//在指定目录中建立一个具有唯一文件名的文件。如果该目录不存在,tempnam() 会在系统临时目录中生成一个文件,并返回其文件名。 
$cookie_file = tempnam(&#39;./tmp&#39;,&#39;cookie&#39;);//其中 cookie 为文件名的前缀
$postfield = &#39;LoginForm[username]=admin&LoginForm[password]=admin&LoginForm[rememberMe]=0&yt0=Login&#39;;
$url = "http://localhost/testdrive/index.php?r=site/login";//登录 提交的 url,可以通过 firfox 的 firebug 工具或者 google chrome 的开发人员工具来查看
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);//保存 cookie 的文件
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS,$postfield);
$strlen = curl_exec($ch);
$url = "http://localhost/testdrive/index.php";//访问登录后的页面。
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);//再次发送请求时,cookie 就会自动传递过去
$strlen = curl_exec($ch);
?>
Nach dem Login kopieren


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage