K先生个人博客

当前位置:首页 > 爱技术 > 正文

php爬虫模拟登录之慕课网

看过上博主上一篇文章的应该都对PHP爬虫有一个最最基础的了解了,现在我们来进一步去了解它。在实际开发中,我们需要爬取的数据,大部分情况下都是需要登录才能获取到的,比如说淘宝网什么的,当然我们现在不以淘宝网为例,至于原因嘛......接下来我们以慕课网为例,来研究一下PHP模拟登录

开始之前的准备 

1、慕课网账号一个 

2、慕课网登录表单提交的url地址以及参数(这个可以使用开发者工具查看、或抓包分析得出),这里就不过多叙述了,反正最后得到地址是:https://www.imooc.com/user/login  

开始实战慕课网模拟登录其实爬虫模拟登录就是上一篇博文所说的post提交的扩展,我们把通过post将用户账号密码提交到上面所说的地址,然后获取到cookie凭证,之后我们凭借着这个cookie就能去爬取个人中心等这些登录之后才能看的数据了。 

下面是完整代码:

<?php
$data = 'username=pmb2020@163.com&password=123456&remember=1&referer=https://www.imooc.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0); //不显示head响应头
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不直接输出
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.1 )"); //设置UA

date_default_timezone_set('PRC'); //使用cookie前需要设置时区
curl_setopt($ch, CURLOPT_COOKIE, session_name() . '=' . session_id()); //设置cookie
curl_setopt($ch, CURLOPT_COOKIESESSION, 1); //开启cookie会话
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookiefile'); //加载cookie
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookiefile'); //保存cookie

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); //跟踪重定向

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("application/x-www-from-urlencodeed;charset=utf-8", "Content-length:" . strlen($data)));
curl_exec($ch); //设置http请求头中的信息,以此让服务器认为是浏览器发出的请求

//第二部分
curl_setopt($ch, CURLOPT_URL, 'https://www.imooc.com/user/setbindsns');//登录之后的页面(个人设置)
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type:text/html'));
$content = curl_exec($ch);
curl_close($ch);
echo $content;

解释的话都在注释里面了,这里要说的一点是第一部分就是模拟登录,第二部分是我们登录成功后拿着cookie去访问其他的页面,当然记得把账号密码换成自己的哦。至于代码中的设置UA,其实在这个小实例中不设置也能成功的,不过为了多扩展一点嘛。UA简单的来说就是浏览器的一种标识,有的网站会检测UA,所以还是有必要了解一下的。对了还有还有模拟提交的参数要会自己找,F12打开开发者工具,找到network自己分析哈。 

到这里也就结束了,老规矩,有问题的下方留言,你若问,我必答。

作者K先生本文地址http://www.gold404.cn/info/39

版权声明:本文为原创文章,版权归 K先生个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

文章评论

* 必填
可选
可选

评论列表