网页爬虫-用PHP的拓展库curl实现模拟登录慕课网

来源:互联网 发布:linux 内核版本 编辑:程序博客网 时间:2024/06/05 06:49

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

<?php   //登录慕课网    $username = "账号";    $data='username=账号&password=密码&remember=1';    $curlobj = curl_init();          // 初始化    curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/user/login");    // 设置访问网页的URL    curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);// 执行之后不直接打印出来    /*        Cookie相关设置,这部分设置需要在所有会话开始之前设置    */    //启用时curl会仅仅传递一个session cookie,忽略其他的cookie    curl_setopt($curlobj,CURLOPT_COOKIESESSION,TRUE);    //设置cookie文件    curl_setopt($curlobj, CURLOPT_COOKIEFILE, "mycookie");    //cookie读取    curl_setopt($curlobj, CURLOPT_COOKIEJAR, "mycookie");    //变量名为session_name()获取的名称,值通过session_id()获取    curl_setopt($curlobj,CURLOPT_COOKIE,session_name().'='.session_id());    curl_setopt($curlobj,CURLOPT_HEADER,0);    //这样能够让curl支持页面链接跳转,即可以到达我们想要的页面    curl_setopt($curlobj, CURLOPT_FOLLOWLOCATION, 1);    //设置post方式提交    curl_setopt($curlobj, CURLOPT_POST, 1);    //设置post数据,post可以是数组,也可以是拼接    curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);    curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded; charset=utf-8",       "Content-length: ".strlen($data)));    curl_exec($curlobj);     //设置cookie文件    curl_setopt($curlobj, CURLOPT_COOKIEFILE, "mycookie");    //cookie读取    curl_setopt($curlobj, CURLOPT_COOKIEJAR, "mycookie");    //变量名为session_name()获取的名称,值通过session_id()获取    curl_setopt($curlobj,CURLOPT_COOKIE,session_name().'='.session_id());    //打开个人中心页面    curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/space/index");    //下载网页不是post操作,所以需要重新设为0    curl_setopt($curlobj, CURLOPT_POST, 0);    curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("Content-type: text/xml"));    $output = curl_exec($curlobj);    curl_close($curlobj);     echo $output;

填上自己的账号密码,运行后即可抓取到自己慕课网的个人中心页面..

原创粉丝点击