zoukankan      html  css  js  c++  java
  • PHP 爬虫

    1、爬虫的本质简单来说,就是读取页面源代码,然后用正则匹配得到想要的数据。

    示例如下:

       private function spider_jiuyou_list($listname,$url)
        {                 
            $fcontents=file_get_contents($url);     //读取到字符串中  
            $table_data = preg_match_all('#<table>(.*?)</table>#si',$fcontents,$match); //正则匹配
            if(!$table_data)return;

            $table_data = $match[0][0]; //将需要的内容赋值给$table_data
            $table_array = explode('<tr>',$table_data); //将字符串其变成一维数组
                 
            $data = array();

            for($i=2;$i<count($table_array);$i++){
                $data[$i] = explode('</td>',$table_array[$i]); //将一维数组变成二维数组
                for($j = 0;$j<count($data[$i]);$j++){
                    $data[$i][$j] = preg_replace('/s(?=s)/','',trim(strip_tags($data[$i][$j]))); //先把html标签去掉,然后去掉首尾空格,接着把中间的长空格变成一个空格
                }
                
                $data[$i][5] = 'jiuyou';
                $data[$i][6] = $listname;
                $data[$i][7] = date('Y-m-d');
            }

            $kname = array('RANK', 'GAME', 'CATEGORY','BETA', 'DATA','CHANNELNAME','LISTNAME', 'THEDATE');
            foreach($data as $key=>&$val){
                $val = array_combine($kname,$val); //把二维数组中的第二层键全部变成$kname中的值。
            }  

            for($i=2;$i<(count($data)+2);$i++){
                $this->db->insert('TBL',$data[$i]);
            }           
        }

    2、$a是个json串。json_decode($a),则得到一个里面元素都是对象的数组。json_decode($a,true),就会转换成纯数组。

    或者还有一种方法,将json_decode($a)的数组转换成纯数组。

    public function object_array($array) { 
            if(is_object($array)) { 
                $array = (array)$array; 
             } 
             if(is_array($array)) { 
                foreach($array as $key=>$value) { 
                     $array[$key] = $this->object_array($value); 
                } 
             } 
             return $array; 
        }
  • 相关阅读:
    centos7系统修改内核
    使用yum update更新文件系统时不更新内核的方法
    实现让用户不断的猜年龄,但只给最多3次机会,超过次数猜不对就退出程序。
    yum安装软件中的y/d/N
    MySQL5.7.15数据库配置主从服务器实现双机热备实例教程
    CentOS7.2 多个python版本共存
    CentOS 7.2 安装Python3.5.2
    R语言与概率统计(五) 聚类分析
    R语言与概率统计(四) 判别分析(分类)
    R语言与概率统计(三) 多元统计分析(下)广义线性回归
  • 原文地址:https://www.cnblogs.com/feiwu123/p/5563105.html
Copyright © 2011-2022 走看看