tp5做网站数据爬虫

    public function index($page){
        set_time_limit(0);
        ignore_user_abort();
        //原网站有多少页数据这里就写多少
        if ($page > 41) {
            echo "全部执行完毕";die;
        }
        echo "正在执行第 $page 条数据";
     //原网站的地址
        $url ="https://www.donghetea.com/quotes.php?id=36&price_min=0&price_max=0&page=".$page."&sort=sort_order&order=desc";

        $str = file_get_contents($url);
        //将文件保存到txt中
//        $time = date('YmdHis');
//        file_put_contents("./log".$time.".html",$str);
        //将文件读取出来
        $reg="/<li class=\"quotes_list\".*?>.*?<\/li>/ism";
        $aarray =  ''; //这个存放的就是正则匹配出来的所有《li》标签数组
        preg_match_all($reg,$str,$aarray);
        //拿出《a》标签中的链接和标签内容
        $reg1="/<span class=\"dh1\".*?>.*?<\/span>/ism";
        $reg2="/<span class=\"dh2\".*?>.*?<\/span>/ism";
        $reg3="/<span class=\"dh3\".*?>.*?<\/span>/ism";
        $reg4="/<span class=\"dh4\".*?>.*?<\/span>/ism";
        $reg5="/<span class=\"dh5\".*?>.*?<\/span>/ism";
        $reg6="/<span class=\"dh6\".*?>.*?<\/span>/ism";
        $reg7="/<span class=\"dh7\".*?>.*?<\/span>/ism";
        for($i=0;$i<count($aarray[0]);$i++){
        //你需要的字段
            $name = '';
            $price = '';
            $up = '';
            $down = '';
            $year = '';
            $updated_at = '';
            $score = '';
            //名称
            preg_match_all($reg1,$aarray[0][$i],$name);
            $inser1['name'] = strip_tags($name[0][0]);
            //参考价
            preg_match_all($reg2,$aarray[0][$i],$price);
            $inser1['price'] = strip_tags($price[0][0]);
            $inser1['price'] = ltrim ($inser1['price'],'¥');
            if(!is_numeric($inser1['price'][-1])){
                $new =substr($inser1['price'], 0, -1) ;
                $new = intval($new)*10000;
                $inser1['price'] = $new;
            }

            //更新日期
            preg_match_all($reg6,$aarray[0][$i],$updated_at);
            $inser1['updated_at'] = strip_tags($updated_at[0][0]);
            //升跌幅度
            preg_match_all($reg3,$aarray[0][$i],$up);
            $inser1['up'] = strip_tags($up[0][0]);
            //升降百分比
            preg_match_all($reg4,$aarray[0][$i],$down);
            $inser1['down'] = strip_tags($down[0][0]);
            //年份
            preg_match_all($reg5,$aarray[0][$i],$year);
            $inser1['year'] = strip_tags($year[0][0]);
            //综合评分
            preg_match_all($reg7,$aarray[0][$i],$score);
           //存入数据库的内容
            $inser1['score'] = trim($score[0][0]);
            $inser1['brand'] = rand(1,6);
            $inser1['seckil_type'] = rand(1,5);
            $inser1['created_at'] = date('Y-m-d H:i:s');
            $inser1['specifications'] = "357克/片 7片/提";
            $inser1['technology'] = "生茶";
            //判断是否存在此条茶品的数据
            $re  =  Db::table('dock_seckill_price')->where(['name'=>$inser1['name']])->find();
            //不存在向数据中添加
            if(!$re){
            //将数据保存到数据表中
                Db::table('dock_seckill_price')->insertGetId($inser1);
            }
            //存在此条信息则修改此条信息的数据
            Db::table('dock_seckill_price')->where(['name'=>$inser1['name']])->update($inser1);
            continue;
        }
        //重定向进入到茶品价格首页中去
       $this->success("执行完毕,正在前往下一条数据",url('Onload/index',['page'=>$page+1]));
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值