php 带cookie登陆

<?php
/**
 * @version $id
 */
define(‘SCRIPT_ROOT‘,dirname(__FILE__).‘/‘);
$act = trim($_REQUEST[‘act‘]);
switch($act)
{
    case ‘login‘:
        // 获取验证码
        $code = trim($_REQUEST[‘code‘]);

        // $loginParams为curl模拟登录时post的参数
        $loginParams[‘act‘] = ‘login‘;
        $loginParams[‘password‘] = ‘chi‘;
        $loginParams[‘username‘] = ‘%BD%97%E7%82‘;
        $loginParams[‘vcode‘] = $code;

        // $cookieFile 为加载验证码时保存的cookie文件名
        $cookieFile = SCRIPT_ROOT.‘cookie.tmp‘;

        // $targetUrl curl 提交的目标地址
        $targetUrl = ‘http://www.juhutang.com/‘;

        // 参数重置
        $content = curlLogin($targetUrl, $cookieFile, $loginParams);
        echo $content;
    break;
    case ‘authcode‘:
        // Content-Type 验证码的图片类型
        header(‘Content-Type:image/png‘);
        showAuthcode(‘http://www.xxxx.com/imagecode.aspx‘);
        exit;
    break;
}

/**
 * 模拟登录
 * @param string $url 提交到的地址
 * @param string $cookieFile 保存cookie的文件
 * @param string $loginParams 提交时要post的参数
 * @return string $content 返回的内容
 */
function curlLogin($url, $cookieFile, $loginParams)
{
    $ch = curl_init($url);
    curl_setopt($ch,CURLOPT_COOKIEFILE, $cookieFile); //同时发送Cookie
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_POST, 1);
    curl_setopt($ch,CURLOPT_POSTFIELDS, $loginParams); //提交查询信息
    $content = curl_exec($ch);
    curl_close($ch);
    return $content;
}

/**
 * 加载目标网站图片验证码
 * @param string $authcode_url 目标网站验证码地址
 */
function showAuthcode( $authcode_url )
{
    $cookieFile = SCRIPT_ROOT.‘cookie.tmp‘;
    $ch = curl_init($authcode_url);
    curl_setopt($ch,CURLOPT_COOKIEJAR, $cookieFile); // 把返回来的cookie信息保存在文件中
    curl_exec($ch);
    curl_close($ch);
}
?>
<iframe src="?act=authcode" style=‘width: 100px; height:40px ‘ frameborder=0 ></iframe>
<form>
<input type="hidden" name="act" value="login">
<input type="text" name="code" />
<input type="submit" name="submit" >
</form>

代码非原创。

php 带cookie登陆

时间: 2024-11-06 21:01:37

php 带cookie登陆的相关文章

爬虫4:cookie登陆并爬取学习成绩

最近项目太忙了,都没空继续学习爬虫,前几天实验了各种姿势带cookie去登陆,都没有成功,不明觉厉 依然没有放弃,今天用同样的办法登陆以前大学的网站居然成功了,我真是一脸懵逼 又看了一遍以前的学习成绩,真是恨不得给自己两耳屎,青春都让狗吃了 哦,对了,以前还有一段学selenium的学习笔记,空了整理放到博客园里面来 # -*- coding:utf-8 -*- import requests from bs4 import BeautifulSoup head={'cookie':'填入抓包抓

php 带cookie采集某页面

<?php error_reporting(0); define("temp_dir", dirname(__FILE__)."/Public/"); define("U", "11111");//$_GET['e']; define("P", "mima"); $dlfk=login(U, P); echo $dlfk; //登陆 $bbb=friendshow(); $bbb

scrapy带cookie登录简单的网站

在爬数据的时候,登录一直是一个比较麻烦的问题.我也一直在网上找过各种资料,都挺麻烦的,因为需要分析各种http过程,感觉太麻烦了. 不过最近在一个同学的帮助下,找到了使用cookie登录的方法.因为带cookie登录的话,server会认为你是一个已登录的用户,所以就会返回给你一个已登录的内容 本文介绍的方法,是使用python的scrapy框架登录的方法.而且也只能登录一些比较简单的网站,对于那种大型的网站,因为目前我也还没有验证过,所以不敢保证.但是经过验证,登录豆瓣是万试万灵的. 1. 获

爬虫学习(七)——带cookie的网页进行爬取

# 前提:# # 通常,很多网站需要登录才能进行浏览,所以在爬取这些网站时,也需要进行登录,并拿取登录时的cookie# # 登录网页,服务器会给客户端一个牌子cookie# # 访问登录页面时,带着牌子进行请求才能返回响应# # 登录界面的爬取 # 做法: # 找到牌子,带着牌子进行请求 # cookie有的在请求头里 # 如下是在登录后的页面中找到请求头里的cookie,然后进行请求,访问其含登陆信息的页面 import urllib.requestimport urllib.parse #

python selenium-webdriver 通过cookie登陆(十一)

上节介绍了浏览器的常用方法,涉及到了cookie的使用,本节介绍一下如何利用cookie进行登陆系统,这里使用到了request模块,我们首先利用request模块,请求登陆地址进行登陆,登陆成功以后获取cookie值,然后再通过add_cookie添加到浏览器,使系统处于登陆状态.这里需要注意的是request请求返回的cookie的格式不能直接传入add_cookie方法,所以这里需要进行转换. #这里需要注意区别,按住格式进行转换 #request 请求返回cookie的格式 {'PHPS

HttpHelps类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理

原文地址:http://blog.csdn.net/cdefg198/article/details/8315438 <span style="font-family:Microsoft YaHei;">/// <summary> /// 类说明:HttpHelps类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理 /// 编码日期:2011-09-20 /// 编 码 人:苏飞 /// 联系方式:361

利用postman进行接口测试并发送带cookie请求的方法

做web测试的基本上都用用到postman去做一些接口测试,比如测试接口的访问权限,对于某些接口用户A可以访问,用户B不能访问:比如有时需要读取文件的数据.在postman上要实现这样测试,我们就必要要用到cookie请求.用postman发送带cookie的请求,由于chrome安全的限制,postman是发不出带cookie的请求.如果想要发送带cookie的请求,需要开启postman Interceptor. 什么是POSTMAN? POSTMAN是一个Chrome插件工具,我们可以通过

Postman发送带cookie的http请求

Postman是chrome上一个非常好用的http客户端插件,可惜由于chrome安全的限制,发不出带cookie的请求.如果想要发送带cookie的请求,需要开启Interceptor: 这个Interceptor还需要到chrome应用商店下载 Postman Interceptor 扩展程序.现在能发送带cookie的http请求.发送cookie时,在header中添加key-value,key固定为Cookie,value是cookie具体的k=v,例如: 需要注意的是,发送带coo

跨域带cookie失效的解决方案

在webpack的tableproxy那儿配置完跨域以后,想给cookie添加domain以便请求的时候带上cookie domain为localhost,cookie不会失效,但是一但改成baidu.com的时候,就失效了,Storage的cookie没掉了. 解决跨域带cookie方案如下: 修改host(windows版)目的:这样就可以去掉proxytable这个转发层了(由express服务器代理的)C:\Windows\System32\drivers\etcwin10: hosts