php抓取网页程序(本文实例讲述了PHP小偷程序的设计与实现方法。)

优采云 发布时间: 2021-11-05 00:03

  php抓取网页程序(本文实例讲述了PHP小偷程序的设计与实现方法。)

  本文介绍了PHP小偷程序的设计和实现。分享给大家,供大家参考,如下:

  其实我一直想做一个有内涵的图网站。之前的想法是做一个cms,然后自己上传一些图片。.

  一开始我没有太多动力去做这件事。然后我放弃了,后来研究了一个CURL。无论如何,最好实现这个想法。

  用 PHP 偷图片就像:穿袜子和凉鞋。虽然没有问题,但是看着真的很心痛。

  先说说我对PHP小偷程序的设计。PHP不支持多线程,所以我只能按顺序做。

  获取目标网站的HTML页面+解析HTML页面获取图片存储的连接+以二进制方式读取并保存到本地+重命名==处理OK

  您现在可以通过两种方式运行该程序:

  第一种:用浏览器运行程序(多半会卡死,设置超时和内存大小就可以了,比较难等你)

  另:用命令行启动PHP(没有PHP超时问题)

  

/**

*HTML解析类

*author:Summer

*date:2014-08-22

**/

class Analytical{

public function __construct()

{

require_once('Class/SimpleHtmlDom.class.php');

$this->_getDir();

}

private function _getDir()

{

$dir = "../TMP/HTML/Results/1";

$imgBIG = "../TMP/IMG/JPG/BIG";

$it = new DirectoryIterator($dir."/");

foreach($it as $file) {

//用isDot ()方法分别过滤掉“.”和“..”目录

if (!$it->isDot()) {

$dirs = $dir."/".$file ;

$tmp = explode(".",$file);

$html = file_get_html($dirs);

$ulArr = $html->find('img');

foreach($ulArr as $key=>$value)

{

if ($value->class == "u")

{

$url = <a>http://</a>www.jb51.net.$value->src;

$infomation = file_get_contents($url);

$result = $this->saveHtml($infomation, $imgBIG, $tmp['0'].".jpg");

if($result)

{

echo $file."OK\n";

}

}

}

}

}

}

private function saveHtml($infomation,$filedir,$filename)

{

if(!$this->mkdirs($filedir))

{

return 0;

}

$sf = $filedir."/".$filename;

$fp=fopen($sf,"w"); //写方式打开文件

return fwrite($fp,$infomation); //存入内容

fclose($fp); //关闭文件

}

//创建目录

private function mkdirs($dir)

{

if(!is_dir($dir))

{

if(!$this->mkdirs(dirname($dir))){

return false;

}

if(!mkdir($dir,0777)){

return false;

}

}

return true;

}

}

new Analytical();

  以上就是从HTML页面获取IMG连接地址的过程。

  使用了两个更重要的东西:

  1.PHP 的 DOM 解析扩展 simplehtmldom

  2.PHP 的目录迭代器

  明白这两点。这门分析课没有难度。

  说说如何获取需要解析的页面?

  其实原理和上面一样。主要是获取页面的URL,然后通过CURL读取页面,返回一个HTML字符串,

  然后将函数包的HTML页面保存到本地。

  我来这里是因为我想要采集页面中的图片(为了防止别人被盗),所以设计的比较复杂。

  以及为什么要分开,因为simplehtmldom对象非常大,反汇编的时候流程更清晰。

  肯定有人会说,为什么不用正则匹配跳过保存HTML到本地的链接,BINGO!我只能懒得写规则了。

  对PHP相关内容感兴趣的读者可以查看本站专题:《php curl使用总结》、《PHP图形和图片操作技巧总结》、《PHP数组(Array)操作技巧大全》、《PHP常见遍历》算法与技巧汇总、PHP数据结构与算法教程、PHP编程算法汇总、PHP正则表达式使用汇总、PHP操作与运算符使用汇总、PHP字符串使用汇总及《PHP常用数据库操作技巧汇总》

  我希望这篇文章能帮助你进行 PHP 编程。

  时间:2016-10-14

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线