文档章节

PHP Curl模拟登录签到

qinjiudong
 qinjiudong
发布于 2017/04/04 10:12
字数 213
阅读 33
收藏 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
粉丝 1
博文 66
码字总数 25363
作品 0
黄浦
程序员
私信 提问
PHP模拟登录并获取数据

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

Louis_88
2015/09/19
99
0
《CURL技术知识教程》系列分享专栏

《CURL技术知识教程》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201737.html 文章 PHP采集相关教程之一 CURL函数库 php中通过curl模拟登陆discuz论坛的实现...

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

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

键盘浪人
2017/09/18
292
4
PHP怎么用16进制公钥进行RSA加密

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

键盘浪人
2017/09/08
312
3
php的curl函数模拟登陆获取cookie,然后能用获取到的cookie保持登录状态吗

我用php的curl函数模拟登陆,不是为了登录后抓取其他页面,是想模拟登陆获取到cookie,然后就直接用获取到的cookie保持登录状态,代码如下: 'xxx@qq.com', 'pwd' => 'xxxxx', 'goto_page' ......

caesium
2015/07/29
3.3K
1

没有更多内容

加载失败,请刷新页面

加载更多

开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
6
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
3
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
2
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
0
0
RabbitMQ学习(2)

1. 生产者客户端 void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body) 1. 在生产者客户端发送消息时,首先......

江左煤郎
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部