php7:网站扫描

本次要完成的工作是得到一个网站下的相应标签。
在开始之前,我先介绍一下提取标签所要用到的类:

  • DOMDocument类:可以看作是一个HTML或XML文档类
    • loadHTMLFile方法:完成对某个url文档的提取
    • getElementsByTagName($tag):根据标签得到一个DOMNodeList对象
  • DOMNodeList类:HTML文档中标签节点的集合,可以通过foreach进行遍历得到DOMElement对象
  • DOMElement类:HTML元素节点类,可以直接进行处理
    • nodeValue:提取元素值
    • attributes:属性集合,可以通过foreach进行遍历处理将其保存到数组中
    • hasAttribute方法:查看该元素是否有属性
    • getAttribute($attr):得到相应属性的值

知道了提取网站信息基本类之后,通过一个类来封装提取网站信息所需要的方法

class Hoover{
   
    private $content=null;  //DOMDocument对象

    //1.得到目标网站的内容,php7新增DOMDocument类,返回一个实例对象,loadHTMLFile用于提取网站的内容,增加$content属性节省代码
    public function getContent($url){
   }
 //2.提取感兴趣的标签,getElementsByTagName(),*表示提取所有标签
    public function getTags($url, $tag){
   }

    //3.提取感兴趣的属性,例如:href属性对应的链接是否在相应域内,在则保留
    public function getAttribute($url, $attr, $domain=NULL){
   }
}

getContent()方法:获取url中的内容,返回一个DOMDocument类对象

public function getContent($url){
   
    if(!$this->content){
   
        if(stripos($url, 'https') !== 0){
       //获取url中https首次出现的位置,查看url是否正确
            //构建url
            $url = 'https://'.$url;
        }
        $this->content = new \DOMDocument('1.0','utf-8');       //得到一个DOMDocument类
        $this->content->preserveWhiteSpace = false;     //去掉冗余的空格
        //加载网站的内容到该对象中,@符号用于忽略HTML文件中的错误
        @$this->content->loadHTMLFile($url);

    }
    return $this->content;
}

getTags($url, $tag):根据url和标签tag来获得网站中指定标签内容并返回一个保存信息的数组

public function getTags($url, $tag){
   
    $count = 0;
    $result = array();
    $elements &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值