php天气预报的小偷程序

    所谓小偷程序,就是盗取别人网站的内容,然后显示在自己的网站上,这是一种不劳而获的行为,今天我们来简单的演示一下什么是小偷程序,以及怎么盗取别人网站的上内容。我们就用一个盗取天气预报信息来作为说明。

   1.熟悉php的file_get_contents函数

    这个函数式干嘛用的呢?其实这个函数很强大,它的作用就是获取指定链接的内容,放回一个字符串,其实到现在我们就知道,小偷程序就是把别人的网页里面的内容抓取过来,也就是使用这个函数。函数使用方法:

    $file=file_get_contents(“http://www.weather.com.cn/weather/101010100.shtml“);

   很简单,就是传递网页的地址即可

2.正则表达的应用

    我们拿到别人的网页内容,为了看上去想是自己的,我们就需要对他的内容进行组装,然后放到自己的网站,有的时候还要进行替换,比如我们专区的图片的地址是别人网站,我们为了屏蔽图片的地址,我们就需要把远程图片地址替换 成我们本地的地址(这里的本地就是我们自己的服务器),关于正则表达的使用,可以参考http://www.cangzhang.com/952.html

3.分析别人的网页结构

    我们到盗取别人的网页的内容,我们首先要分析别人的网页结构,首先查看别人的网站的源代码,看看我们想要的是哪些内容,把要的内容放在文件里面看看效果是不是我们想要的,然后再在程序里面照着我们需要的方式去截取。

4.组装成我们想要的格式

    就以我们天气预报程序为例,天气的远程地址是:http://www.weather.com.cn/weather/101010100.shtml  ,现在我们要的是  “北京 逐6小时精细化预报 ( 2012-09-08   08 :00发布)”这块里面的东西,为了样式不受破坏,我们首先把head里面的内容截取出来

$file=file_get_contents(“http://www.weather.com.cn/weather/101010100.shtml“);

   eregi(“<head>(.*)</head>”, $file,$head); //截取字符串放在$head

   echo “<html></head>”; //添加上少了的标签

   print_r($head[1]);  //显示出截取的内容

   echo “</head>”; // 补充head标签

   echo “<body><center>”;//补充body开始标签,和使用center来显示居中

现在我们要显示body里面的内容了

我们通过分析网页结构,知道“<div class=\”jxyb\”>”是我们想要的那一块的开始位置,所以我们的正则表示是

eregi(“<div class=\”jxyb\”>(.*)</a></b></td>”, $file,$body);

为什么不是用是</div>来结束,获取中间的内容呢,因为网页里面有很多的div我们需要找到一个唯一确定的字符串来截取,这样内容就基本获取完了,我们要最的就是把漏掉的标签补充上。

print_r($body[1]);  echo “</a></b></td>   </tr>   </table> </div>”;

 echo “</body></html>”;

到现在为止:我们的程序就完成了。

完整代码:

 

$file=file_get_contents("http://www.weather.com.cn/weather/101010100.shtml");

eregi("(.*)", $file,$head);
echo "";
print_r($head[1]);
echo "";
echo "

";
echo "
";
eregi("
(.*)

", $file,$body);
print_r($body[1]);
echo "

";
echo "";
?>

效果截图:

演示地址:http://www.cangzhang.com/demo/955/weather.php 

共有 19 条评论

Top