QueryList采集数据并保存图片到本地


 1 // 抓取,添加数据
 2     public function save(){
 3         require 'QueryList/phpQuery.php';
 4         require 'QueryList/QueryList.php';
 5          // 要抓的网址
 6         $url = 'http://www.techweb.com.cn/newgame';
 7         $rules =
 8          [
 9             'title' => ['.news_title>h3>a','html'],
10             'text' => ['.news_text>p','html'],
11             'img' => ['.na_pic>img','src']
12          ];
13         $data = @QueryList::Query($url,$rules)->data;
14         // 将数据中的图片循环保存
15         foreach ($data as $key=>$val){
16             $res = file_get_contents($val['img']);
17             // 固定保存到指定文件夹中
18             $info = 'img/'.time().rand(1,999999).substr($val['img'],strrpos($val['img'],'.'));
19             file_put_contents($info,$res);
20         }
21          // 用Db方法把抓取数据存到数据表“query”中
22         Db::table('query')->insertAll($data,true);
23     }

 

如果抓取的数据有的无字段,则要添加判断条件

在给$data赋值完,图片循环保存之前添加判断

 1 foreach ($data as $k=>$v) {
 2            if (empty($v['title'])) {
 3                unset($data[$k]);
 4            }
 5            if (empty($v['img'])) {
 6                unset($data[$k]);
 7            }
 8            if (empty($v['text'])) {
 9                unset($data[$k]);
10            }
11        }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM