php采集网站中图片,保存到本地,并添加入库
<?php
/**
* 此方法由QueryList采集得到 只需修改路径即可!
* 用PDO入库(有兴趣的同学可自行封装一个类,来进行调用)
*/
header("content-type:text/html;charset=utf8");
//图片下载方法
function dlfile($file_url){
$content = file_get_contents($file_url);
$save_to='./images/'.date('Y').'/'.date('m').'/'.date('d').'/';
is_dir($save_to)or mkdir($save_to,0777,true);
$save_to.=time().'-'.rand(1000,9999).substr($file_url,strrpos($file_url,'.'));
file_put_contents($save_to, $content);
return $save_to;
}
//引入文件
require "../../querylist/phpQuery.php";
require "../../querylist/QueryList.php";
use QL\QueryList;
$url = "http://news.ifeng.com/mainland/";
//采集规则
$rules = array(
//标题
"news_title" => array( ".juti_list h3 a","text"),
//连接
"news_url" => array( ".juti_list h3 a","href"),
//图片
"news_img" => array( ".juti_list .ju_pic a img","src"),
//Jianjie
"news_content" => array( ".juti_list .clearfix p","text"),
//时间
"news_time" => array( ".juti_list .ping03 span","text"),
);
$data = QueryList::Query($url,$rules)->data;
foreach ($data as $k => $v) {
if(!isset($v['news_img'])){
unset($data[$k]);
continue;
}
$data[$k]['news_img']=dlfile($v['news_img']);
}
//print_r($data);die;
$pdo = new PDO("mysql:host=127.0.0.1;dbname=diqiyue",'root','root');
foreach ($data as $key => $v) {
$sql = "insert into `news`(news_title,news_url,news_img,news_content,news_time) values('$v[news_title]','$v[news_url]','$v[news_img]','$v[news_content]','$v[news_time]')";
$res = $pdo -> exec($sql);
}
if ($res) {
echo "<script>alert('添加成功!');location.href='show.php';</script>";
}else{
echo "<script>alert('添加成功!');</script>";
}
//print_r($data);
?>