泡了个学妹,好开心

2016/06/21

//by  xbw///

环境 山东科技大学//


学妹好萌,给了我一包什么不二家棒棒糖,糖更可爱。

贴吧偶遇,加了qq,学妹没说名字,留了几条信息,

第一条:学校c/c++ JudgeOnline系统个人提交统计图。


第二条:qq空间留言,大家都叫她华姐。

两条信息在我们这不大的校园里足够了。

开始寻找学妹。。。。。。


抓取名字中有”华“字的学生,然后,同时抓取带“华”字同学的学号,然后通过学号GET请求得到提交题目的AC情况,

我们抓取Submit总数,AC总数,然后AC总数/Submit总数的结果保留两位小数,结果为0.57的学生挑出来,

一开始以为学妹实力了得,就只抓取了系统前1000名同学,然而都是查询无果,感觉有点灰心,问了学妹,

学妹告诉我她是转专业的,这就更厉害了,不是信息学院的一半oj提交数量很少,于是我把范围扩大,

学妹终于浮出水面了,面对唯一的结果开心的告诉了学妹,真的对了。哈哈

上代码

  1. <?PHP  
  2. set_time_limit(0);  
  3. $page=0;  
  4. while($page<=40){  
  5.     $str = file_get_contents('http://***.218.128.***/JudgeOnline/ranklist.php?start='.$page*50);//OJ- Ranklist  
  6.     $isMatched = preg_match_all('/\'>(?<grp0>[^<]+)<\/a><td align=center>(?<grp1>[^<]+)<td align=center>/'$str$matches);//正则表达式抽取学号,姓名  
  7.       
  8.     if($isMatched!=0){  
  9.         for($i=0;$i<$isMatched;$i++){  
  10.             $xu=array();  
  11.             for($j=1;$j<=2;$j++){  
  12.                 $xu[$j]=$matches[$j][$i];  
  13.             }  
  14.             $isMatchs = preg_match('/[\x{534e}]+$/u'$xu[2], $matchess);//匹配华字,例如张新华。  
  15.             if($isMatchs){  
  16.                 echo $xu[2].'--'.$xu[1].'<BR>';  
  17.                 $strs = file_get_contents('http://***.218.128.***/JudgeOnline/userinfo.php?user='.$xu[1]);//GET学号得到详细信息  
  18.                 $isMatchss = preg_match_all('/Submit<td align=center><a href=\'status\.php\?user_id=(?<grp0>[^\']+)\'>(?<grp1>[^<]+)<\/a><\/tr>[^<]*<tr bgcolor=#D7EBFF><td>(?<grp2>[^<]+)<td align=center><a href=status\.php\?user_id=(?<grp3>[^\D]+)&jresult=(?<grp4>[^>]+)>(?<grp5>[^<]+)<\/a><\/tr><tr/'$strs$matchesss);//匹配submit,ac数量  
  19.                 //echo 'geshu--'.$isMatchss.'<BR>';  
  20.                 if($isMatchss!=0){  
  21.                     $txt = sprintf("%.2f",(double)$matchesss[6][0]/(double)$matchesss[2][0]);  
  22.                     echo $matchesss[6][0].'/'.$matchesss[2][0].'='.$txt.'<BR>';  
  23.                         if($txt==0.57){  
  24.                             echo '*******'.$xu[2].'*******'.'<BR>';  
  25.                         }  
  26.                     /*for($i=0;$i<$isMatchss;$i++){ 
  27.                         $xus=array(); 
  28.                         for($j=1;$j<=6;$j++){ 
  29.                             $xus[$j]=$matchesss[$j][$i]; 
  30.                         } 
  31.                         echo $xus[6].'/'.$xus[2].'<BR>'; 
  32.                         if((int)$xus[6]/(int)$xus[2]==57){ 
  33.                             echo $xu[2]; 
  34.                         } 
  35.                     }*/  
  36.                 }     
  37.             }  
  38.         }  
  39.     }  
  40.     $page++;  
  41. }  
  42. ?>  
<?PHP
set_time_limit(0);
$page=0;
while($page<=40){
	$str = file_get_contents('http://***.218.128.***/JudgeOnline/ranklist.php?start='.$page*50);//OJ- Ranklist
	$isMatched = preg_match_all('/\'>(?<grp0>[^<]+)<\/a><td align=center>(?<grp1>[^<]+)<td align=center>/', $str, $matches);//正则表达式抽取学号,姓名
	
	if($isMatched!=0){
		for($i=0;$i<$isMatched;$i++){
			$xu=array();
			for($j=1;$j<=2;$j++){
				$xu[$j]=$matches[$j][$i];
			}
			$isMatchs = preg_match('/[\x{534e}]+$/u', $xu[2], $matchess);//匹配华字,例如张新华。
			if($isMatchs){
				echo $xu[2].'--'.$xu[1].'<BR>';
				$strs = file_get_contents('http://***.218.128.***/JudgeOnline/userinfo.php?user='.$xu[1]);//GET学号得到详细信息
				$isMatchss = preg_match_all('/Submit<td align=center><a href=\'status\.php\?user_id=(?<grp0>[^\']+)\'>(?<grp1>[^<]+)<\/a><\/tr>[^<]*<tr bgcolor=#D7EBFF><td>(?<grp2>[^<]+)<td align=center><a href=status\.php\?user_id=(?<grp3>[^\D]+)&jresult=(?<grp4>[^>]+)>(?<grp5>[^<]+)<\/a><\/tr><tr/', $strs, $matchesss);//匹配submit,ac数量
				//echo 'geshu--'.$isMatchss.'<BR>';
				if($isMatchss!=0){
					$txt = sprintf("%.2f",(double)$matchesss[6][0]/(double)$matchesss[2][0]);
					echo $matchesss[6][0].'/'.$matchesss[2][0].'='.$txt.'<BR>';
						if($txt==0.57){
							echo '*******'.$xu[2].'*******'.'<BR>';
						}
					/*for($i=0;$i<$isMatchss;$i++){
						$xus=array();
						for($j=1;$j<=6;$j++){
							$xus[$j]=$matchesss[$j][$i];
						}
						echo $xus[6].'/'.$xus[2].'<BR>';
						if((int)$xus[6]/(int)$xus[2]==57){
							echo $xu[2];
						}
					}*/
				}	
			}
		}
	}
	$page++;
}
?>


好啦,学妹浮出水面了。

好开心。


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值