像jQuery一样在php里读取html

发现一个很好用的工具 PHP Simple HTML DOM Parser,可以像jQuery一样处理html,可以很方便的进行后台采集。

比如,采集王者荣耀的英雄克制关系

<?php
	require 'simple_html_dom.php';
	$hero_id='189';
	$html = file_get_html('https://pvp.qq.com/web201605/herodetail/'.$hero_id.'.shtml');
	
	$relation=array();
	foreach($html->find('div[class="hero-info l info"]') as $text){
	//print_r($text);
		$hero_type=$text->find('div[class="hero-f1 fl"]',0)->plaintext;
		$hero_list=$text->find('div[class="hero-list hero-relate-list fl"]',0)->find('ul li a');
		$hero_desc=$text->find('div[class="hero-list-desc"]',0)->find('p');
		for($i=0;$i<count($hero_list);$i++){
			array_push($relation,array(
				'hero_id'=>$hero_id,
				'relation_type'=>$hero_type,
				'related_hero_id'=>str_replace(".shtml",'',$hero_list[$i]->href),
				'relation_desc'=>$hero_desc[$i]->plaintext
				));
		}
	}
	print_r($relation);
	

Array
(
    [0] => Array
        (
            [hero_id] => 189
            [relation_type] => 最佳搭档
            [related_hero_id] => 115
            [relation_desc] => 高渐离:推荐的原因是高渐离和鬼谷子的技能搭配爆发配合满分,鬼谷子游走或者团战时,使用1技能可以添加减抗性效果,3技能可以获得加速和群体隐身效果,2技能可以把敌人拉在一起并眩晕。和高渐离配合时用3技能隐身迅速贴近被1技能减少抗性的敌人,利用2技能硬控晕住的敌人,可以让高渐离有良好的输出环境。
        )

    [1] => Array
        (
            [hero_id] => 189
            [relation_type] => 最佳搭档
            [related_hero_id] => 131
            [relation_desc] => 李白:鬼谷子和李白可以产生很好的联动效果,李白2技能减伤后大招可以伤害爆炸,鬼谷子的1技能可以减少敌方抗性,配合李白的2技能大招会让伤害最大化,大招隐身技能也可以让李白的行踪难以被掌控。
        )

    [2] => Array
        (
            [hero_id] => 189
            [relation_type] => 压制英雄
            [related_hero_id] => 152
            [relation_desc] => 王昭君:鬼谷子1技能加移速特别快,很容易躲掉王昭君最核心的2技能,鬼谷子也可以利用2技能控制破解王昭君的大招,所以鬼谷子相对克制王昭君,只要避免不被王昭君2技能大招秒掉可以轻松和王昭君对线,鬼谷子的持续输出能力也比较强,可以轻松应对王昭君。
        )

    [3] => Array
        (
            [hero_id] => 189
            [relation_type] => 压制英雄
            [related_hero_id] => 153
            [relation_desc] => 兰陵王:兰陵王的核心玩法是隐身靠近敌方核心输出位,寻找时机切死敌方后排,而鬼谷子大招开启时会触发反隐效果,可以轻松发现兰陵王的身位,配合队友利用2技能控制1技能的减少抗性轻松秒掉兰陵王。
        )

    [4] => Array
        (
            [hero_id] => 189
            [relation_type] => 被压制英雄
            [related_hero_id] => 132
            [relation_desc] => 机动性高的英雄不太容易被鬼谷子抓住
        )

    [5] => Array
        (
            [hero_id] => 189
            [relation_type] => 被压制英雄
            [related_hero_id] => 173
            [relation_desc] => 李元芳能侦测到鬼谷子的大概位置
        )

)

官方 https://simplehtmldom.sourceforge.io/

类似文章

发表评论

您的电子邮箱地址不会被公开。