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

高洛峰
풀어 주다: 2016-10-17 10:14:46
원래의
1289명이 탐색했습니다.

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

<?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);
로그인 후 복사

코드를 직접 입력합니다. 페이지의 콘텐츠에 액세스하기 위해 로그인해야 하는 정보를 캡처할 수 있습니다. 위의 주소는 단지 예시일 뿐이며 크롤링하려는 페이지의 주소로 바꿔야 합니다. 이런 식으로 우리는 많은 일을 할 수 있지만 나쁜 일은 하지 마세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿