>  기사  >  백엔드 개발  >  PHP는 로그인을 시뮬레이션하고 페이지 콘텐츠를 캡처합니다. 컬 사용 방법

PHP는 로그인을 시뮬레이션하고 페이지 콘텐츠를 캡처합니다. 컬 사용 방법

PHP中文网
PHP中文网원래의
2017-02-10 14:22:591082검색

일상적인 개발에서 특정 페이지의 콘텐츠를 가져오는 경우가 종종 있지만 액세스하려면 일부 페이지에 로그인해야 하는 경우가 있습니다. 이때 가장 일반적인 것은 로그인을 시뮬레이션하기 위해 컬을 사용해야 하는 경우입니다. . 일반적인 아이디어: 먼저 쿠키 추출을 요청하고 저장한 다음 저장된 쿠키를 사용하여 페이지 콘텐츠를 가져오기 위해 다시 요청을 보내야 합니다

<?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);
.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.