Heim > Artikel > Backend-Entwicklung > PHP simuliert die Anmeldung und erfasst den Seiteninhalt
In der täglichen Entwicklung kommt es häufig vor, dass wir den Inhalt einer bestimmten Seite abrufen, aber manchmal müssen wir uns für den Zugriff auf einige Seiten anmelden. Am häufigsten müssen wir Curl verwenden, um die Anmeldung zu simulieren . Die allgemeine Idee: Sie müssen zuerst das Extrahieren und Speichern von Cookies anfordern und dann die gespeicherten Cookies erneut senden, um den Seiteninhalt abzurufen. Nachfolgend geben wir den Code direkt ein
<?php /** * @Brief PHP读取Curl模拟登陆, 获取cookie, 带cookie进行请求 * @Date: 2016/7/2 * @Time: 9:41 */ //设置cookie保存位置 $cookieFile = dirname(__FILE__).'cookie.curl.tmp'; //第一步:获取cookie $url = 'http://www.pythontab.com'; $data = array( 'username' => 'pythontab', 'password' => 'pythontab', ); //curl初始化 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //设置为post请求 curl_setopt($ch, CURLOPT_POST, true); //设置附带返回header信息为空 curl_setopt($ch, CURLOPT_HEADER, 0); //post数据 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //cookie保存文件位置 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); //设置数据返回作为变量储存,而不是直接输出 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //执行请求 $ret = curl_exec($ch); //关闭连接 curl_close($ch); //第二步:附带cookie请求需要登陆的页面 $url = 'http://www.pythontab.com'; //curl初始化 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //设置为post请求 curl_setopt($ch, CURLOPT_POST, true); //设置附带返回header信息为空 curl_setopt($ch, CURLOPT_HEADER, 0); //设置cookie信息文件位置, 注意与第二步中的获取不同,这里是读取 curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); //设置数据返回作为变量储存,而不是直接输出 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //执行请求 $ret = curl_exec($ch); //关闭连接 curl_close($ch); //打印抓取内容 var_dump($ret);
damit Wir können die Informationen erfassen, die für den Zugriff auf den Inhalt der Seite erforderlich sind. Beachten Sie, dass die obige Adresse nur ein Beispiel ist und durch die Adresse der Seite ersetzt werden muss, die Sie crawlen möchten. Auf diese Weise können wir viel tun, aber tun Sie nichts Schlechtes!