php定时抓取接口数据,PHP通过CURL实现定时任务的图片抓取功能示例

搜索热词

本文实例讲述了PHP通过CURL实现定时任务的图片抓取功能。分享给大家供大家参考,具体如下:

下文为各位介绍一个PHP定时任务通过CURL图片的抓取例子,希望例子对大家帮助,基本思路就是通过一个URL连接,将所有图片的地址抓取下来,然后循环打开图片,利用文件操作函数下载下来,保存到本地,并且把图片的alt属性也抓取下来,最后将数据保存到自己数据库.

废话不多说,看程序就能明白了,其中,需要用到PHP定时任务和PHP的一个第三方插件simple_html_dom.PHP 的使用,参考simple_html_dom的下载和使用.

PHP;">

load($output);

$links = array();

$arr = array();

$title = array();

foreach($html->find('a') as $element){

if(preg_match('#^\/content_[0-9]+_1\.html$#i',$element->href)){

array_push($links,'//www.jb51.cc'.$element->href);

array_push($title,$element->title);

}

}

$links = array_values(array_unique($links));

$title = array_values(array_unique($title));

$arr['links'] = $links;

$arr['title'] = $title;

return $arr;

}

function loadimg($url,$dirname){

include_once('simple_html_dom.PHP');

$ch = curl_init();

curl_setopt($ch,$url);

curl_setopt($ch,false);

curl_setopt($ch,1);

$output = curl_exec($ch);

curl_close($ch);

$html = new simple_html_dom();

$html->load($output);

$arr = array();

foreach($html->find('img[w]') as $element){

$image = $element->src;

}

$data = file_get_contents($image);

$info = getimagesize($image);//获取图片信息,大小,格式

switch($info[2]){

case 1:

$str = 'gif';

break;

case 2:

$str = 'jpg';

break;

case 3:

$str = 'png';

break;

default:

continue;

break;

}

if($info[1] < 10 || $info[0] < 10) continue;//图片太小,不是有价值的图片,跳过本次循环

$filename = time().rand(1,999999).'.'.$str;

if(!is_dir($dirname)){

mkdir($dirname,0777,true);

}

$fp = fopen($dirname.$filename,'w');

fwrite($fp,$data);

fclose($fp);

return $dirname.$filename;

}

do{

set_time_limit(0);

ignore_user_abort();

$img = getLink('//www.jb51.cc/qutu_1.html');

$count = count($img['links']);

$arr = array();

for($i=0;$i';

$img['title'];

$res = array();

$len = count($img['title']);

//重新将数据组装成我们常用的二维数组,方便数据的数据库处理

for($i=0;$i'.$item["title"].'

';

}

$interval = 24*3600;

sleep($interval);

}while(true);

?>

希望本文所述对大家PHP程序设计有所帮助。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值