我也来个跳转式采集
时间:2009-01-02
来源:互联网
采集地址:http://photo.pclady.com.cn/type/1/1.html
我作了一下解释,方便大家阅读,以便交流。程序如下:
运行这个页面(page.php)就可以了 [php]<?php/** * Author: 蓝色夏威夷 * date: Mon Dec 15 14:57:01 CST 2008 * Email:[email protected] * QQ:415961641思路如下:1.根据所传入的地址来解析这个页面,得到这页面的25个图片主题地址2.把主题地址和缩略图地址传到array页面3.array页面解决出图片地址并传到pic页面4.pic页面来采集图片,采集完之后转到array页面让其提供下一组图片地址。5.array页面的各组图片采集完后再回到page页面 重复操作。*///只要运行这个文件就可以了。session_start();$page = isset($_GET['page']) ? $_GET['page'] : 1 ;$pages = $page.'.html';echo $url = 'http://photo.pclady.com.cn/type/1/'.$pages;//这个循环确保了网络不好或由于其他原因采集不到内容时仍可以再次采集一直采集到为止。(我之前没有写这个循环时总会出现0字节的图片)$data = file_get_contents($url);while (!$data) { $data = file_get_contents($url);}preg_match_all("/<\/a>/is",$data,$title); foreach ($title[1] as $key => $value) { $itempic[] = 'http://photo.pclady.com.cn/'.$value; } //保存了当前页面的25组主题图片的采集地址 $_SESSION['itempic'] = $itempic; //保存了每组主题图片的缩略图地址 $_SESSION['titlepic'] = $title[3]; //保存下当前页面号 $_SESSION['page'] = $page; echo ""; ?>[/php]
这个页面会作些跳转处理
[php]
<?php
/**
* Author: 蓝色夏威夷
* date: Mon Dec 15 14:57:01 CST 2008
* Email:[email protected]
* QQ:415961641
*/
set_time_limit(600);
session_start();
//把某个页面的25组图片地址带到这个页面
$itempic = $_SESSION['itempic'];
//当前页面有多少组图片主题(用于判断本页有没有采集完)
echo $coun = count($itempic);
echo '<br>';
//在采集到第几组图片了
echo $itemid = $_GET['itemid']!='' ? $_GET['itemid'] : 0;
echo '<br>';
//在采集到第几页了
echo $page = $_SESSION['page'];
echo '<br>';
//获得当前组的采集地址
$value = $itempic[$itemid];
$picaddr = file_get_contents($value);
//这个上面已经解释过了
while (!$picaddr) {
$picaddr = file_get_contents($value);
}
preg_match_all("/small\.jpg\",imgUrl:\"(.+?)\",name:/is",$picaddr,$bigaddr);
//保存着当前组的所有图片地址,(终于得到图片地址了)
$_SESSION['picaddr'] = $bigaddr[1];
//如果本页没有采集完继续采集本页的下一组
if($itemid < $coun){
echo "<script>location.href='pic.php?itemid=".$itemid."';</script>";
}
?>
[/php]
这个是采集页面
[php]<?php/** * Author: 蓝色夏威夷 * date: Mon Dec 15 14:57:01 CST 2008 * Email:[email protected] * QQ:415961641*/set_time_limit(600);session_start();$picaddress = $_SESSION['picaddr'];$itempic = $_SESSION['itempic'];$titlepic = $_SESSION['titlepic'];echo '当前页数:';echo $page = $_SESSION['page'];echo '
此组图片数:';echo $count = count($picaddress);echo '
图片组ID:';echo $itemid = $_GET['itemid'];echo '
图片ID:';echo $picid = $_GET['picid']!='' ? $_GET['picid'] : 0;echo '
';echo '
图片URL:';echo $values = $picaddress[$picid];echo '
图片目录:';$tempname = explode('/',$itempic[$itemid]);echo $dir = intval($tempname[4]);echo '
图片名称:';echo $file = $dir.$picid.'.jpg';echo '
';//建立一个文件夹保存每一组图片if(!file_exists("./$dir")){ mkdir("./$dir", 0700);}$dates = file_get_contents($values);while (!$dates) { $dates = file_get_contents($values);}//这是一些写入文件的操作$wf = fopen("./$dir/$file","wb");if($wf){ if(fwrite($wf,$dates)){ echo ''. $file . ' 写入成功'; }else{ $_SESSION['err'][] = $values; //当写入失败时把图片地址保存到出错数组 } fclose($wf); }//这一段是把 page.php 页面的得到的缩略图地址采集并放到每组文件夹下,都命名为 titlepic.jpgif(!file_exists("./$dir/titlepic.jpg")){ $temppic = $titlepic[$itemid]; $titledates = file_get_contents($temppic); while (!$titledates){ $titledates = file_get_contents($temppic); } $titlef = fopen("./$dir/titlepic.jpg",'wb'); if($titlef){ fwrite($titlef,$titledates); fclose($titlef); }}//判断本页面的图片有没有采集完(如果当前的组号为24而且图片号等于本组的图片数则已经采集完)if($itemid == 24 && $picid == ($count-1)){ $page++; if($page < 4){//控制采集到第几页(默认从第一页采集到3页面止)如果没有到指定的页面则继续到page.php采集 echo ""; }else{ echo '采集完成!'; exit; } }else{ //如果图片号等于本组的图片数则采集本页的下一组图片。否则采集本组的下一张图片 if($picid < ($count-1)){ $picid++; echo ""; }else{ $itemid++; echo ""; } } ?>[/php]

caiji.rar (2.87 KB)
作者: wanchun0222 发布时间: 2009-01-02
作者: cqc1008 发布时间: 2009-01-04

作者: niceup 发布时间: 2009-01-05
作者: 0hudu 发布时间: 2009-01-05

作者: winglechen 发布时间: 2009-01-07
作者: dx_andy 发布时间: 2009-01-07

作者: function 发布时间: 2009-01-10
作者: function 发布时间: 2009-01-10

作者: wanchun0222 发布时间: 2009-01-21
作者: ibio 发布时间: 2009-01-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28