Heim  >  Artikel  >  Backend-Entwicklung  >  PHP simuliert die Anmeldung und erfasst den Seiteninhalt

PHP simuliert die Anmeldung und erfasst den Seiteninhalt

高洛峰
高洛峰Original
2016-10-17 10:14:461269Durchsuche

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__).&#39;cookie.curl.tmp&#39;;
//第一步:获取cookie
$url = &#39;http://www.pythontab.com&#39;;
$data = array(
    &#39;username&#39;  => &#39;pythontab&#39;,
    &#39;password&#39;  => &#39;pythontab&#39;,
);
//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 = &#39;http://www.pythontab.com&#39;;
//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!

Stellungnahme:
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