小偷程序其实就是利用了php中的一特定函数实现采集别人网站的内容,然后通过正则分析把我们想要的内容保存到自己本地数据库了,下面我来介绍php小偷程序的实现方法,有需要的朋友可参考。

在下面采集数据过程中file_get_contents函数是关键了,下面我们来看看file_get_contents函数语法

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败, file_get_contents() 将返回 FALSE。

file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

 代码如下 复制代码

<?php
$homepage = file_get_contents('http://www.111cn.net/');
echo $homepage;
?>

这样$homepage就是我们采集网的内容给保存下来了,好了说了这么多我们开始吧。

 代码如下 复制代码

<?php

function fetch_urlpage_contents($url){
$c=file_get_contents($url);
return $c;
}
//获取匹配内容
function fetch_match_contents($begin,$end,$c)
{
$begin=change_match_string($begin);
$end=change_match_string($end);
$p = "{$begin}(.*){$end}";
if(eregi($p,$c,$rs))
{
return $rs[1];}
else { return "";}
}//转义正则表达式字符串
function change_match_string($str){
//注意,以下只是简单转义
//$old=array("/","$");
//$new=array("/","$");
$str=str_replace($old,$new,$str);
return $str;
}

//采集网页
function pick($url,$ft,$th)
{
$c=fetch_urlpage_contents($url);
foreach($ft as $key => $value)
{
$rs[$key]=fetch_match_contents($value["begin"],$value["end"],$c);
if(is_array($th[$key]))
{ foreach($th[$key] as $old => $new)
{
$rs[$key]=str_replace($old,$new,$rs[$key]);
}
}
}
return $rs;
}

$url="http://www.111cn.net"; //要采集的地址
$ft["title"]["begin"]="<title>"; //截取的开始点
$ft["title"]["end"]="</title>"; //截取的结束点
$th["title"]["中山"]="广东"; //截取部分的替换

$ft["body"]["begin"]="<body>"; //截取的开始点
$ft["body"]["end"]="</body>"; //截取的结束点
$th["body"]["中山"]="广东"; //截取部分的替换

$rs=pick($url,$ft,$th); //开始采集

echo $rs["title"];
echo $rs["body"]; //输出
?>

以下代码从上一面修改而来,专门用于提取网页所有超链接,邮箱或其他特定内容

 代码如下 复制代码

<?php

function fetch_urlpage_contents($url){
$c=file_get_contents($url);
return $c;
}
//获取匹配内容
function fetch_match_contents($begin,$end,$c)
{
$begin=change_match_string($begin);
$end=change_match_string($end);
$p = "#{$begin}(.*){$end}#iU";//i表示忽略大小写,U禁止贪婪匹配
if(preg_match_all($p,$c,$rs))
{
return $rs;}
else { return "";}
}//转义正则表达式字符串
function change_match_string($str){
//注意,以下只是简单转义
$old=array("/","$",'?');
$new=array("/","$",'?');
$str=str_replace($old,$new,$str);
return $str;
}

//采集网页
function pick($url,$ft,$th)
{
$c=fetch_urlpage_contents($url);
foreach($ft as $key => $value)
{
$rs[$key]=fetch_match_contents($value["begin"],$value["end"],$c);
if(is_array($th[$key]))
{ foreach($th[$key] as $old => $new)
{
$rs[$key]=str_replace($old,$new,$rs[$key]);
}
}
}
return $rs;
}

$url="http://www.111cn.net"; //要采集的地址
$ft["a"]["begin"]='<a'; //截取的开始点<br />
$ft["a"]["end"]='>'; //截取的结束点

$rs=pick($url,$ft,$th); //开始采集

print_r($rs["a"]);

?>

小提示file_get_contents很是容易被防采集了,我们可以使用curl来模仿用户对网站进行访问,这算比上面要高级不少哦,file_get_contents()效率稍低些,常用失败的情况、curl()效率挺高的,支持多线程,不过需要开启下curl扩展。下面是curl扩展开启的步骤:

1、将PHP文件夹下的三个文件php_curl.dll,libeay32.dll,ssleay32.dll复制到system32下;

2、将php.ini(c:WINDOWS目录下)中的;extension=php_curl.dll中的分号去掉;

3、重启apache或者IIS。

简单的抓取页面函数,附带伪造 Referer 和 User_Agent 功能

 代码如下 复制代码

<?php
function GetSources($Url,$User_Agent='',$Referer_Url='') //抓取某个指定的页面
{
//$Url 需要抓取的页面地址
//$User_Agent 需要返回的user_agent信息 如“baiduspider”或“googlebot”
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $Url);
curl_setopt ($ch, CURLOPT_USERAGENT, $User_Agent);
curl_setopt ($ch, CURLOPT_REFERER, $Referer_Url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$MySources = curl_exec ($ch);
curl_close($ch);
return $MySources;
}
$Url = "http://www.111cn.net"; //要获取内容的也没
$User_Agent = "baiduspider+(+http://www.baidu.com/search/spider.htm)";
$Referer_Url = 'http://www.111cn.net/';
echo GetSources($Url,$User_Agent,$Referer_Url);
?>

php小偷程序实例代码相关推荐

  1. python协同过滤调用包_简单的python协同过滤程序实例代码

    本文研究的主要是python协同过滤程序的相关内容,具体介绍如下. 关于协同过滤的一个最经典的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那么通常的做法就是问问周围的朋友,看看 ...

  2. python经典程序实例代码,python编程应用实例

    python递归算法经典实例有哪些? 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法. ...

  3. php 小偷,php 小偷程序实例

    1.初识正则表达式 2.认识函数ereg(),eregi() 3.file_get_contents读取整个文件函数 但是读取部分文件时就不能用这种方法 用fread file_get_content ...

  4. 计算器的程序代码java_java 简单的计算器程序实例代码

    java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class c ...

  5. python聊天程序程序代码_python聊天程序实例代码分享

    代码简单,直接看代码吧: 代码如下: import socket import threading import re #import Tkinter def ser(): s=socket.sock ...

  6. python有趣小程序代码-一个可以套路别人的python小程序实例代码

    先简要介绍一下程序. 程序是使用pycharm工具,python语言所写.程序包括客户端 client.py 和服务器端 server.py 两部分,利用了python中的socket包. 咳咳,使用 ...

  7. python3经典小程序代码_一个可以套路别人的python小程序实例代码

    python可以开发什么?谁有python小程序的源代码,...桌面程序,web都可以,还有比如现在讲的多的人工智能,神经网络源码可以去找一些开源代码,搜索一下,蛮多的. 分享python小程序代码练 ...

  8. java计算器简单源代码_java 简单的计算器程序实例代码

    java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class C ...

  9. python编程基础与案例集锦,python经典程序实例代码

    你都用Python 来做什么? 当我知道可以做这些之后,我特别想会.因为论文查阅.答案确认查询:想知道豆瓣8分以上电影,或者穿越类的电影.处理工资数据考核表等. 可以干什么1.上学吧答案神器 主要实现 ...

  10. python整人小程序_一个可以套路别人的python小程序实例代码

    先简要介绍一下程序. 程序是使用pycharm工具,python语言所写.程序包括客户端 client.py 和服务器端 server.py 两部分,利用了python中的socket包. 咳咳,使用 ...

最新文章

  1. Elasticsearch 知识点目录
  2. 漫步者煲耳机软件_它是苹果AirPods的“真香替身”——漫步者lolliPods开箱体验...
  3. LVS+Keepalived-DR模式负载均衡高可用集群
  4. (转)Response.Redirect 打开新窗口的两种方法
  5. AngularJS实现原理
  6. react跳转url,跳转外链,新页面打开页面
  7. 03.进程和线程.md
  8. 一口气搞懂「链表」,就靠这20+张图了
  9. 基于TCP协议的进程间通信
  10. 一、Linux基础知识
  11. java界面怎么加图片不显示不出来_Java登录界面中添加背景图片,程序无错,但加载不了图片,求帮忙...
  12. 【Tyvj】1473校门外的树3 线段树/树状数组 区间修改+单点访问
  13. java web 网络安全_Java Web中的入侵检测及简单实现
  14. 【语义分割】--SegNet理解
  15. 持久化存储PV与PVC
  16. 页面加载缓冲的login
  17. mutate  字段替换
  18. Tolerance Analysis 尺寸公差分析
  19. C++模板的特化与偏特化
  20. Axure制作菜单栏效果

热门文章

  1. 在CSDN开通博客专栏后如何发布文章及改进建议(图文)
  2. NoSQL数据库简介
  3. C#实现多功能记事本
  4. 小米手机一键刷入bl锁重锁_OPPO手机完美安装Kingroot实现一键root
  5. win10计算机等应用不能能用,Win10电脑无法安装应用软件的解决办法
  6. Android集成三方腾讯浏览器X5内核
  7. lamp兄弟连java_LAMP兄弟连李明老师讲Linux视频教程下载
  8. Qt学习之路(一):动态添加/删除控件
  9. 利用Microsoft Visual Studio查看.dll文件的依赖项及内部函数名
  10. SC系统总裁win10封装教程