抓取扑克之星免费赛玩家排行榜

function getpokerstaropenplayers()
{
	//http://www.intellipoker.tw/leagues/Open-League/leaderboard?page=1
	// 获取扑克之星开放玩家排名
	$url = "http://www.intellipoker.tw/leagues/Open-League/leaderboard";
	
	
	$html = file_get_html($url);
	if($html == false)
	{
		echo "get false";
		exit(0);
	}
	
	$playerrow = $html->find('tr[class="odd"]');
	$playerdata = array();
	if(!file_exists("d://pokerfree/paiming1.txt"))
	{
		foreach($playerrow as $row)
		{
			$paiming = $row->children[1];
			$palyername = $row->children[3]->find("a");
			$score = $row->children[count($row->children) - 1]->find("a");
		
			//print_r($paiming->innertext);
			//print_r($palyername[0]->innertext);
			//print_r($score[0]->innertext);
			$name = $palyername[0]->innertext;
			$name = str_replace("&", "&",$name);
			$name = str_replace("<", "<",$name);
			$name = str_replace(">", ">",$name);
			$name = str_replace("'", "'",$name);
			$name = str_replace("\"", """,$name);
			file_put_contents("d://pokerfree/paiming1.txt","<note player=\"".$name."\" label=\"5\" update=\"1404984118\">".$paiming->innertext.",".$score[0]->innertext."</note>\n",FILE_APPEND);
			//$playerdata[$paiming] = array($paiming,$palyername,$score);
		}	
	}
	else
	{
		$data = file_get_contents("d://pokerfree/paiming1.txt");
		
		
	}
	
	
	for($i = 1;$i <= 500;$i++)
	{
		if(!file_exists("d://pokerfree/paiming{$i}.txt"))
		{
			$url = "http://www.intellipoker.tw/leagues/Open-League/leaderboard?page=".$i;
			
			
			$html = file_get_html($url);
			if($html == false)
			{
				continue;
			}
			
			$playerrow = $html->find('tr[class="odd"]');
			foreach($playerrow as $row)
			{
				if(count($row->children) < 6)
					continue;
				$paiming = $row->children[1];
				$palyername = $row->children[3]->find("a");
				$score = $row->children[count($row->children) - 1]->find("a");
			
				//print_r($paiming->innertext);
				//print_r($palyername[0]->innertext);
				//print_r($score[0]->innertext);
				//echo "<note player=\"".$palyername[0]->innertext."\" label=\"5\" update=\"1404984118\">".$paiming->innertext.",".$score[0]->innertext."</note>\n";
				$name = $palyername[0]->innertext;
				$name = str_replace("&", "&",$name);
				$name = str_replace("<", "<",$name);
				$name = str_replace(">", ">",$name);
				$name = str_replace("'", "'",$name);
				$name = str_replace("\"", """,$name);
				file_put_contents("d://pokerfree/paiming{$i}.txt","<note player=\"".$name."\" label=\"5\" update=\"1404984118\">".$paiming->innertext.",".$score[0]->innertext."</note>\n",FILE_APPEND);
			}
		}
		
	}
	
	//<note player="harry_bt2013" label="5" update="1404984118">会玩NL2-7等大牌ALL IN</note>
	
	
	
}

  上面代码用到第三方HTML解析库simple_html_dom.php

  只是抓取了500页以内的玩家排名

  每一页的玩家排名数据都各自生成一个文件

  然后通过批命令 copy *.txt > paiming.txt 合并出扑克之星自定义的标注文件

  因为通过网页抓取,所以生成XML文件时候需要把一些字符转义 

  还有涉及到PHP 如何解析出HTML数据用法,值得记录下来。

  下面是玩家排名的一行的HTML代码。这样就可以知道PHP要查找到HTML代码.

<tr class="odd">
                  <td></td>
                    <td>1</td>
                    <td class="marked">
                        
                        <img src="http://media.intellipoker.com/images_site/global/themes/pso/arrow-dash-000.gif" alt="排名持平">&nbsp;                    </td>


                    
                    <td>
                                                    <img class="b-flag b-flag_DO" src="http://media.intellipoker.com/images_site/global/flags/blank.gif" alt="DO" title="DO">
                                                <a style="color: black;" href="#">Omegit@</a>
                    </td>


                  <td> <img src="/images_system/icons/global-chips20.png"></td>                        <td class="gap"></td>
                                                      <td class="marked">
                         $150                            </td>


                                            <td class="gap"></td>
                                                    <td class="marked checked20">

                         $1,500                            </td>


                                        <td class="checked" title="participated in:87"><img src="http://media.intellipoker.com/images_site/global/themes/pso/checked.png" alt=""></td>
                    <td>
                                                <a style="color: black;" href="/leagues/Open-League/leaderboard?username=Omegit%40&amp;user_id=4296180">2612.10</a>
                    </td>
                </tr>

这些标注数据可以用来识别网上的那些玩家大概的实力,当然是比不上那种专业数据软件.请见谅

  

  

转载于:https://www.cnblogs.com/maikkk/p/3922292.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值