前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP模拟登陆抓取页面内容

PHP模拟登陆抓取页面内容

原创
作者头像
用户1349575
修改2022-01-01 11:11:31
2.6K0
修改2022-01-01 11:11:31
举报
文章被收录于专栏:编程社区编程社区

平时开发中经常会遇到抓取某个页面内容, 但是有时候某些页面需要登陆才能访问, 最常见的就是论坛, 这时候我们需要来使用curl模拟登陆。 大致思路:需要先请求提取 cookies 并保存,然后利用保存下来的这个cookies再次发送请求来获取页面内容,下面我们直接上代码

代码语言:javascript
复制
<?php 
/** 
 * @Brief PHP读取Curl模拟登陆, 获取cookie, 带cookie进行请求 
 * @Date: 2021/01/01
 * @Time: 9:41 
 */ 
//设置cookie保存位置 
$cookieFile = dirname(__FILE__).'cookie.curl.tmp'; 
//第一步:获取cookie 
$url = 'http://www.domain.com'; 
$data = array( 
    'username'  => 'aseoe', 
    'password'  => 'aseoe', 
); 
//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.domain.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); 

这样我们就抓取到了需要登陆才能访问页面的内容, 注意上面的地址只是一个示例,需要换成你想要抓取页面的地址。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档