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

本文介绍了一种使用PHP的cURL库实现慕课网自动登录并抓取个人中心页面的方法。通过设置cookie和模拟POST请求来完成登录流程。

网络爬虫(又被称为网页蜘蛛,网络机器人,在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;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值