php实现小偷程序实例图,php实现小偷程序实例设计,PHP实现小偷程序实例

php实现小偷程序实例图,php实现小偷程序实例设计,PHP实现小偷程序实例

本文主要介绍了一个PHP实现小偷程序的实例,实现了抓取网页咨询和商品信息的功能,具有一定的参考价值。感兴趣的朋友可以参考一下。

为什么使用“小偷程序”?

远程抓取文章信息或商品信息是很多企业要求程序员实现的功能,也就是俗称的小偷程序。它的主要优点是解决了公司网络编辑的繁重工作,大大提高了效率。只需要运行一下就可以快速抓取别人网站的信息。

“小偷程序”在哪里运行?

“小偷程序”最好在DOS下通过PHP命令运行,或者在Windows下通过Linux运行,因为网页会超时。

比如图(以Windows下的DOS为例):

“小偷程序”的实现

下面举个例子来说明。我们来抢一下华强电子网的资料。请先看这个链接http://www.hqew.com/info-c10.html。当你打开这个页面,你会发现一些现象:

1.信息列表有500页(2012年01月03日);

2.每个页面的url链接都是有规律的,比如:第一页是http://www.hqew.com/info-c10-1.html;第二页是http://www.hqew.com/info-c10-2.html;第500页上的http://www.hqew.com/info-c10-500.html;

3.从第二点可以知道“华强电子网”的信息是伪静态或者是生成的静态页面。

其实大部分网站都有这样的规则,比如中关村在线,慧聪网,新浪,淘宝。

这样,我们就可以通过这个思路来抓取页面内容:

1.先获取文章列表页面的内容;

2、根据文章列表页面的内容循环获取文章的url地址;

3.根据文章的url地址获取文章的详细内容。

这里主要抓信息页:标题、发布日期、作者、来源、内容。

“华强电子网”资讯抓取

首先,构建数据表结构,如下所示:

创建表“文章”。“文章”(

` id ' MEDIUMINT(8)UNSIGNED NOT NULL AUTO _ INCREMENT主键,

` title ' VARCHAR(255)字符集utf8 COLLATE utf8 _ general _ ci NOT NULL,

` date ' VARCHAR(50)不为空,

` author ' VARCHAR(100)字符集utf8 COLLATE utf8 _ general _ ci NOT NULL,

` source ' VARCHAR(100)字符集utf8 COLLATE utf8 _ general _ ci NOT NULL,

` content '文本不为空

)ENGINE=MYISAM字符集utf8 COLLATE utf8 _ general _ ci

抓取程序:

?服务器端编程语言(Professional Hypertext Preprocessor的缩写)

/**

*捕获华强电子网络的信息程序

*作者李。

*最后修改日期:2012-1-3 15:39:35美元

*/

header(' Content-Type:text/html;charset=utf-8 ');

$mysqli=new mysqli('localhost ',' root ',' 1715544 ',' article ');#数据库连接,请手动修改自己的数据库信息。

$ mysqli-set _ charset(' UTF8 ');#设置数据库代码

函数数据($url) {

global $ mysqli

$ result=file _ get _ contents($ URL);# $result获取url链接内容(注意:这里是文章列表链接)

$pattern='/lispan class='box_r '。\/spana href='([^'] )' title=' . '。\/a \/Li/Usi ';#获取文章url的匹配规律性

preg_match_all($pattern,$result,$ arr);#将文章列表的url分配给数组$arr(二维数组)

foreach ($arr[1] as $val) {

$val='http://www.hqew.com '。$ val#真实文章的url地址

$ re=file _ get _ contents($ val);# $re是文章url的内容

$ pa='/div id=' article' \ s h1(。)\/h1 \ s p id=' article \ _ ext info' \ s已发布:\ s(。)\s \|\s作者:\s(。)\ s \ | \)\ s span style=' display:none '。div id='article_body'\s*。)\s \/div\s \/div!-文章结尾-/Usi ';#获取文章内容的规律性

preg_match_all($pa,$re,$ array);#将检索到的内容分配给数组$array

$ content=trim($ array[5][0]);

$con=array(

title '=mysqlString($ array[1][0]),

date'=mysqlString($array[2][0]),

author '=MySQL string(strip author tag($ array[3][0]),

source '=mysqlString($ array[4][0]),

content '=MySQL string(strip content tag($ content))

);

$sql='插入文章(标题、日期、作者、来源、内容)值(' {$con['title']} ',' {$con['date']} ',' {$con['author']} ',' { $ con[' content ']} ')';

$ row=$ mysqli-query($ SQL);# 添加到数据库

if(row){

回声”添加成功!";

}否则{

回显"添加失败!";

}

}

}

/**

* stripOfficeTag($v)对文章内容进行过滤,比如:去掉文章中的链接,过滤掉没用的超文本标记语言标签……

* @param string $v

* @返回字符串

*/

函数stripContentTag($v){

$v=str_replace('p /p ','',$ v);

$v=str_replace('p /','',$ v);

$v=preg_replace('/a href=' .target='\_blank'strong(.)\/strong\/a/Usi ',' \1 ',$ v);

$v=preg_replace('%(span\s*[^]*(.*)/span)%Usi ',' \2 ',$ v);

$ v=preg _ replace(' %(\ s class='mso[^']')% si ','',$ v);

$ v=preg _ replace(' %(style='[^']*mso[^]*)%si','',$五世');

$v=preg_replace('/b\/b/','',$ v);

返回$ v;

}

/**

* stripTitleTag($title)对文章标题进行过滤

* @param string $v

* @返回字符串

*/

函数stripAuthorTag($v) {

$v=preg_replace('/a href=' .target='\_blank '()\/a/Usi ',' \1 ',$ v);

返回$ v;

}

/**

* mysqlString($str)过滤数据

* @ param stringstr

* @返回字符串

*/

函数mysqlString($str) {

返回添加斜线(trim($ str));

}

/**

*初始化(最小值,最大值)入口程序方法,从美元最小值页开始取,到最大值页结束

* @param int $min从一开始

* @ param intmax

* @返回字符串返回统一资源定位器地址

*/

函数初始化($min=1,$max) {

for($ I=$ min;$ i=$ max$i ) {

数据(' http://www。hqew。com/info-C10-{ $ I }).html’);

}

}

init(1500);//程序入口,从第一页开始抓,抓取500页

通过上面的程序,就可以实现抓取华强电子网的资讯信息。

入口方法初始化($最小值,$最大值)如果想抓取1-500 页面内容,那么初始化(1500)即可!这样,用不了多长时间,华强电子网的资讯就会全部抓取到数据库里面了。^_^

执行界面:

数据库:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 七种php开发环境搭建工具有哪些,七种php开发环境搭建工具包括
  • 七种php开发环境搭建工具有哪些,七种php开发环境搭建工具包括,七种PHP开发环境搭建工具
  • php高并发三种解决方法,php 高并发解决方案
  • php高并发三种解决方法,php 高并发解决方案,PHP解决高并发问题(opcache)
  • php邮件发送的两种方式区别,php邮件发送的两种方式是什么
  • php邮件发送的两种方式区别,php邮件发送的两种方式是什么,php邮件发送的两种方式
  • php跳转页面的几种实现方法详解图,php跳转页面的几种实现方法详解视频
  • php跳转页面的几种实现方法详解图,php跳转页面的几种实现方法详解视频,PHP跳转页面的几种实现方法详解
  • PHP购物车,php立即购买和购物车功能
  • PHP购物车,php立即购买和购物车功能,php实现购物车功能(上)
  • php读取pdf数据,php pdf读取
  • php读取pdf数据,php pdf读取,PHP中使用mpdf 导出PDF文件的实现方法
  • php网站判断用户是否是手机访问的方法有哪些,php如何判断用户是否登录
  • 留言与评论(共有 条评论)
       
    验证码: