您的位置 首页 php

利用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 = ‘./cookie.txt’;

$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=”‘,%20′<h3><a%20href=” $v);

echo $result[0][$k];

}

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

抓取得到的活动列表

文章来源:智云一二三科技

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

文章地址:https://www.zhihuclub.com/79441.shtml

关于作者: 智云科技

热门文章

网站地图