php模拟登陆抓取
2017-03-14 本文已影响0人
木头石头锤子
此为在ci框架的抓取程序:
<?php
defined( 'BASEPATH' ) OR exit( 'No direct script access allowed' );
class Login extends CI_Controller {
public function index() {
$this->checklogin() ;
var_dump($this->crab());
}
// 登录
private function checklogin() {
$curlPost = 'username=111&password=111';
$con = $this->curl_post( 'http://127.0.0.1/phc/index/login',$curlPost,1 );
return $con;
}
//抓取
private function crab(){
$con = $this->curl_post( 'http://127.0.0.1/phc/index/list','',2 );
return $con;
}
//通信
private function curl_post( $url,$curlPost,$method) {
$cookie_file = dirname(__FILE__).'/cookie.txt';
$ch = curl_init();//初始化curl
curl_setopt( $ch, CURLOPT_URL, $url );//抓取指定网页
curl_setopt( $ch, CURLOPT_HEADER, 0 );//设置header
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );//要求结果为字符串且输出到屏幕上
curl_setopt( $ch, CURLOPT_POST, 1 ); //post提交方式
curl_setopt( $ch, CURLOPT_POSTFIELDS, $curlPost );
if($method == 1)
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
else
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
$data = curl_exec( $ch ); //运行curl
curl_close( $ch );
if($method != 1) return $data;
}
}
此为phalcon登陆验证
<?php
namespace home\controllers;
use Phalcon\Mvc\Controller;
use common\libs\api;
class indexcontroller extends Controller {
public function listAction(){
if($this->session->has('userid')){
exit("has login");
}else{
exit("no login");
}
}
public function loginAction(){
$username = $this->request->getPost('username');
$password = $this->request->getPost('password');
if($username == '111' && $password == '111'){
$this->session->set('userid',23);
}
$this->view->disable();
}
}
验证:
Paste_Image.png Paste_Image.png