php简单爬虫使用登录账号密码爬取列表(爬虫二篇)

来源:互联网 发布:淘宝商品代理 编辑:程序博客网 时间:2024/06/13 12:32

php简单爬虫使用登录账号密码爬取列表

关于思路

1.定义一个变量$data用来存放你想爬取网站的登录账号和密码以及是否‘记住密码’,此篇我以博客园为例
    $data='input1=Dco4FpN99He1KN+m+GNujkxG29ZJ1k8HqTCJVPnR3l8H8PdkPCTcjgbajphjoBJPiS3XiPYYcNJ9GuS9eyrEmLRHo8okmJYYkyoYbxzZoqatiUX2zkeqYrm0VNXXflqsIZddEPLNKVkEZ/l59nkfi8io4AxltPKEDPLSffUJWho=&input2=VkCACmIgvQy7oZ9UvcSDD9nmG9H9MAqBN/zIxN9f+kFcr4O6KEkMC5ZU1xWdvDSLjfKCxIM3nSf35bFklVLjaTIEU9YHfvavnGx4uewG1/Dr164OyDzfqwbyuYrbwveBRKCfh/eKmRMFy+v2NxuLPZu/u+6gOGwrhENC1urfGpc=&remember=true' ;
2.怎么知道表单要提交的信息?抓包!我用的是chrome的开发者工具

这里写图片描述

在里面可以看到表单提交的信息,remember为是否记住密码3.开始爬虫的初始化,等一系列操作,其实最关键的是对cookie的一些设置,不过代买是常规的,只要记住就行,在所附代码中我已经写明注释,还是很好理解。下面贴出关于cookie设置的代码
    /**     * 与cookie相关的设置     */    #设置时区    date_default_timezone_set('PRC');    #设置http请求中'cookie'部分内容    curl_setopt($curlObj, CURLOPT_COOKIE, session_name().'='.session_id());    //判断session有效与否    curl_setopt($curlObj, CURLOPT_COOKIESESSION, true);    //设置cookie数据的文件名,cookie文件的格式可以是Netscape格式,或者是纯http头部信息存入文件    curl_setopt($curlObj, CURLOPT_COOKIEFILE, "vickaycookie");    //连接结束后保存cookie信息的文件    curl_setopt($curlObj, CURLOPT_COOKIEJAR, "vickaycookie");
下面是全部代码
    <?php    $data='input1=Dco4FpN99He1KN+m+GNujkxG29ZJ1k8HqTCJVPnR3l8H8PdkPCTcjgbajphjoBJPiS3XiPYYcNJ9GuS9eyrEmLRHo8okmJYYkyoYbxzZoqatiUX2zkeqYrm0VNXXflqsIZddEPLNKVkEZ/l59nkfi8io4AxltPKEDPLSffUJWho=&input2=VkCACmIgvQy7oZ9UvcSDD9nmG9H9MAqBN/zIxN9f+kFcr4O6KEkMC5ZU1xWdvDSLjfKCxIM3nSf35bFklVLjaTIEU9YHfvavnGx4uewG1/Dr164OyDzfqwbyuYrbwveBRKCfh/eKmRMFy+v2NxuLPZu/u+6gOGwrhENC1urfGpc=&remember=true' ;    //初始化    $curlObj = curl_init();    //设置代码执行以文件流形式输出,而不会直接打印出来    curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);    /**     * 与cookie相关的设置     */    #设置时区    date_default_timezone_set('PRC');    #设置http请求中'cookie'部分内容    curl_setopt($curlObj, CURLOPT_COOKIE, session_name().'='.session_id());    //判断session有效与否    curl_setopt($curlObj, CURLOPT_COOKIESESSION, true);    //设置cookie数据的文件名,cookie文件的格式可以是Netscape格式,或者是纯http头部信息存入文件    curl_setopt($curlObj, CURLOPT_COOKIEFILE, "vickaycookie");    //连接结束后保存cookie信息的文件    curl_setopt($curlObj, CURLOPT_COOKIEJAR, "vickaycookie");    //是否保存header头信息    curl_setopt($curlObj, CURLOPT_HEADER, 0);    //让curl支持页面链接的跳转    curl_setopt($curlObj, CURLOPT_FOLLOWLOCATION, 1);    //设置post请求    curl_setopt($curlObj, CURLOPT_POST, 1);    //全部数据使用http中的'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_setopt($curlObj,CURLOPT_URL,"http://www.cnblogs.com/SamSarah/");   curl_setopt($curlObj, CURLOPT_POST,0);   curl_setopt($curlObj, CURLOPT_HTTPHEADER, array(       "Content-type: text/html"   ));   $output = curl_exec($curlObj);   curl_close($curlObj);   echo $output;

就到这儿了,漏洞多多,欢迎指点,共同交流

0 0