文档章节

PHP Curl模拟登录签到

qinjiudong
 qinjiudong
发布于 2017/04/04 10:12
字数 213
阅读 27
收藏 0
<?php

/** 
*	curl登录签到
* 	201704
* 	W3C
* 	qjd
*/ 


$arr['cookstr'] = "";
$arr['url'] = "http://www.w3cschool.cn/checklogin";
$arr['url2'] = "http://www.w3cschool.cn/index/checkHeader";
$arr['pstr'] = "refer=&username=***&password=***&scode=&remember=1";
$arr['name'] = strtotime(date("Y-m-d H:00:00"));
$arr['ua'] = "客户端";

$strs = getw3c($arr);
$v = json_decode($strs)->statusCode;

// 登录失败删除缓存的cookie
if($v == '300'){
	unlink($arr['name']);
	$strs = getw3c($arr);
}

// 签到
$arr['url2'] = "http://www.w3cschool.cn/my/checkin";    
// 返回状态
echo json_decode(getw3c($arr))->message;

// w3c模拟登录签到
function getw3c($arr='') {
	if(empty($arr)) return 'value is null';     
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $arr['url']);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      		// 不直接输出数据
	curl_setopt($ch, CURLOPT_POST, 1);						// post
	curl_setopt($ch, CURLOPT_POSTFIELDS, $arr['pstr']);  	// post字符串
	curl_setopt($ch, CURLOPT_COOKIE, $arr['cookstr']);   	// cookie
	curl_setopt($ch, CURLOPT_COOKIEFILE, $arr['name']);   	// 读取cookie文件
	curl_setopt($ch, CURLOPT_COOKIEJAR, $arr['name']);		//保存响应头cookie 
	curl_setopt($ch, CURLOPT_USERAGENT, $arr['ua']);     	//模拟客户端
	// curl_setopt($ch, CURLOPT_HEADER, 1);					
	if(!file_exists($arr['name'])) curl_exec($ch);    		// 缓存cookie
	curl_setopt($ch, CURLOPT_URL, $arr['url2']);      		// 访问要抓取的页面
	$res = curl_exec($ch);
	curl_close($ch);
	return $res;	
}

 

© 著作权归作者所有

共有 人打赏支持
qinjiudong
粉丝 0
博文 60
码字总数 23874
作品 0
黄浦
程序员
PHP模拟登录并获取数据

cURL 是一个功能强大的PHP库,使用PHP的cURL库可以简单和有效地抓取网页并采集内容,设置cookie完成模拟登录网页,curl提供了丰富的函数, 开发者可以从PHP手册中获取更多关于cURL信息。本文...

Louis_88
2015/09/19
99
0
PHP怎么用16进制公钥进行RSA加密

是这样,要用php Curl进行站点模拟登录,而别人的站点,是对pwd密码进行了rsa加密传到后台的,如果我要curl模拟登录的话,必须也要把密码进行rsa加密模拟post提交上去。其中该站点登录页面的...

键盘浪人
2017/09/08
137
3
《CURL技术知识教程》系列技术教程整理

《CURL技术知识教程》系列技术教程整理 有时间会不断更新,大家有什么好的推荐的可以在下面回复,我会酌情收录 1PHP采集相关教程之一 CURL函数库 2php中通过curl模拟登陆discuz论坛的实现代码...

开元中国2015
2015/05/07
470
0
PHP怎么用模数和指数得到公钥进行RSA加密

已知16进制模数:C34E069415AC02FC4EA5F45779B7568506713E9210789D527BB89EE462662A1D0E94285E1A764F111D553ADD7C65673161E69298A8BE2212DF8016787E2F4859CD599516880D79EE5130FC5F8B7F69476......

键盘浪人
2017/09/18
78
4
php curl请求信息和返回信息设置代码实例,特别是在请求过程中存在重定向的时候获取请求返回头信息

在用curl抓取网页内容的时候,经常要知道,网页返回的请求头信息,和请求的相关信息,特别是在请求过程中存在重定向的时候获取请求返回头信息对分析请求内容很有帮助 下面就是一个请求中存在...

蜗牛奔跑
2015/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ在CentOS环境安装

1.废话不多说准备一台虚拟机,系统为centos,我这里使用的系统版本如下图所示:

凌晨一点
46分钟前
0
0
线程池相关

在java.util.concurrent包下,提供了一系列与线程池相关的类。 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务...

edwardGe
48分钟前
0
0
学习大数据这三个关键技术是一定要掌握!

大数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。学习大数据技术的人自然是络绎不绝, 学习大数据虽然是一个趋势,但也要注意大数据培训课程...

董黎明
今天
0
0
jetbrains 上传代码到github

设置中找github 获取token 验证是否成功 测试git 生成key,一路回车即可 ssh-keygen -t rsa -C “youremail@example.com” 打开pub复制key,需要再次输入一次密码 验证是否成功,输入yes即可...

阿豪boy
今天
0
0
分布式服务框架(拾遗)

前言 现在的大部分工程都已经是基于分布式架构来处理。所以这里对分布式框架做一个简单的总结 常用的RPC框架 RPC框架原理 RPC(Remote Procedure Call,远程过程调用)一般用来实现部署在不同...

kukudeku
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部