您的位置 首页 > 娱乐休闲

利用php的cURL实现模拟登录,抓取页面数据等功能

cURL是php内置的一个很有用的函数:

cURL可以使用URL的语法模拟浏览器来传输数据,因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些:HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上传文件断点续传,http代理服务器管道,甚至它还支持IPv6,scoket5代理服务器,通过http代理服务器上传文件到FTP服务器等等。这就是我们为什么要使用cURL的原因!

今天模拟登录安锋游戏, 来获取最新活动:

上代码:

<?php

//模拟登录

function login_post($url, $cookie, $post) {

$curl = curl_init();//初始化curl模块

curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址

curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-Requested-With:XMLHttpRequest']);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//是否自动显示返回的信息

curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //设置Cookie信息保存在指定的文件中

curl_setopt($curl, CURLOPT_POST, 1);//post方式提交

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息

curl_exec($curl);//执行cURL

curl_close($curl);//关闭cURL资源,并且释放系统资源

}

function get_content($url, $cookie) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Requested-With:XMLHttpRequest']);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //读取cookie

$rs = curl_exec($ch); //执行cURL抓取页面内容

curl_close($ch);

return $rs;

}

$url = ';;

$cookie = '.;;

$post = [

'username'=>'user123',

'password'=>'************'

];

//模拟登录

login_post($url, $cookie, $post);

$content = get_content(';, $cookie);

//匹配出所有活动

preg_match_all ('/<h3><a\s*href=[^>]+>([^>]+)<\/a>/', $content, $result);

foreach ($result[0] as $k => $v) {

$result[0][$k] = str_replace('<h3><a href="', '<h3><a href=";, $v);

echo $result[0][$k];

}

运行这段代码可以获得图片中的活动列表

抓取得到的活动列表

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“php如何获取cookie,php如何获取表单提交的数据,PHP如何获取指定日期,PHP如何获取从微信小程序上传的数据”边界阅读