打算用php实现一个爬虫,这是爬指定页面的图片的一段程序,其他的部分还没调试好,先把这个放上来
1 <?php 2 $string=file_get_contents("http://www.baidu.com"); 3 echo 'size:'.strlen($string)."</br>"; 4 $length=strlen($string); 5 searchImg($string,$length); 6 7 8 9 function searchImg($string,$length){ 10 for ($i=0; $i <$length ; $i++) { 11 if(($string[$i]=='s')&&($string[$i+1]=='r')&&($string[$i+2]=='c')){ 12 $index=$i; 13 14 $scr=searchScr($index,$length,$string);//为“http://.......***”的格式 15 16 $type=judgeType($scr); 17 // 18 if($type!="error"){ 19 echo 'location:'.$index.'</br>'; 20 echo 'scourse:'.$scr.'</br>'; 21 echo 'type:'.$type."</br>"; 22 $filename='pic/'.$index.'.'.$type; 23 $handle=fopen($filename,"a"); 24 25 $scrString=file_get_contents($scr); 26 fwrite($handle, $scrString); 27 fclose($handle); 28 } 29 30 } 31 32 } 33 } 34 35 function judgeType($scr){ 36 $length=strlen($scr); 37 38 if((($scr[$length-1]=='f'||$scr[$length-1]=='F'))&&(($scr[$length-2]=='i')||($scr[$length-2]=='I'))){ 39 return "gif"; 40 } 41 else if ((($scr[$length-1]=='g'||$scr[$length-1]=='G'))&&(($scr[$length-2]=='P')||($scr[$length-2]=='p'))) { 42 return "jpg"; 43 } 44 else if((($scr[$length-1]=='g'||$scr[$length-1]=='G'))&&(($scr[$length-2]=='n')||($scr[$length-2]=='N'))){ 45 return "png"; 46 } 47 else if((($scr[$length-1]=='g'||$scr[$length-1]=='G'))&&(($scr[$length-2]=='E')||($scr[$length-2]=='e'))){ 48 return "jpeg"; 49 } 50 else{ 51 return "error"; 52 } 53 } 54 55 56 57 function searchScr($index,$length,$string){ 58 if($string[$index+5]==="h"){ 59 60 $scr=''; 61 } 62 else{ 63 64 $scr='http:'; 65 } 66 67 for ($i=$index+5; $i<$length ; $i++) { 68 if($string[$i]==='"'){ 69 //$scr=$scr.'"'; 70 break; 71 } 72 else{ 73 $scr=$scr.$string[$i]; 74 } 75 } 76 return $scr; 77 //echo $scr; 78 79 80 } 81 82 83 84 ?>
主要说一些不足,动态生成的图片不能收录,css中的图片不能收录,这是接下来要完善的地方,爬虫就是不断完善出来的,php的字符串还是蛮累的。。。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP写的爬虫,爬指定网站页面上的各种图片 - Python技术站