文档章节

PHP Curl模拟登录签到

qinjiudong
 qinjiudong
发布于 2017/04/04 10:12
字数 213
阅读 31
收藏 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
博文 61
码字总数 24373
作品 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
PHP怎么用模数和指数得到公钥进行RSA加密

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

键盘浪人
2017/09/18
78
4
我在用python做一个模拟登录并签到的登录后遇到问题

我在用python做一个模拟登录并签到的登录后遇到问题 目前能模拟登录成功。 但是登录以后的页面是一个框架页面 http://web.jingoal.com/Apps/Attendance.jsp (里面有个签到按钮) 这个是登录...

落舞者
2013/12/10
641
3
《CURL技术知识教程》系列技术教程整理

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

开元中国2015
2015/05/07
470
0

没有更多内容

加载失败,请刷新页面

加载更多

Python深体验,常见的数据处理方式(必须要懂的)

1.缺失值处理 - 拉格朗日插值法 input_file数据文件内容(存在部分缺失值): from scipy.interpolate import lagrangeimport pandas as pdimport numpy as npinput_file = './dat...

无也Python
25分钟前
2
0
Spring MVC注解故障追踪记

Spring MVC是美团点评很多团队使用的Web框架。在基于Spring MVC的项目里,注解的使用几乎遍布在项目中的各个模块,有Java提供的注解,如:@Override、@Deprecated等;也有Spring提供的注解,...

Skqing
26分钟前
4
0
区块链入门教程以太坊源码分析cmd包分析

  兄弟连区块链入门教程以太坊源码分析cmd包分析。 ### cmd包概述 * geth 主要Ethereum CLI客户端。它是Ethereum网络(eth主网,测试网络或私有网)的入口点,使用此命令可以使节点作为ful...

兄弟连区块链入门教程
28分钟前
1
0
@Autowired 报红线

代码可正常跑,不过红线看着有点难受,解决方案 使用@Autowired(required=false) 或者@Resource. 这两者区别网上一大堆

斩神魂
33分钟前
1
0
DataTable中检索信息 (C#)

C#_从DataTable中检索信息 存在于内存中的虚拟表DataTable,绑定在数据显示控件后,如果想在再检索其中某些信息,可以利用DataTable.Select方法进行检索,避免了重复的读取数据库。Select方法...

CS-CS01
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部