Home  >  Article  >  php教程  >  PHP 实现小偷程序

PHP 实现小偷程序

WBOY
WBOYOriginal
2016-06-06 19:41:501253browse

为什么使用“小偷程序”? 远程抓取文章资讯或商品信息是很多企业要求程序员实现的功能,也就是俗说的 小偷程序 。其最主要的优点是:解决了公司网编繁重的工作,大大提高了效率。只需要一运行就能快速的抓取别人网站的信息。 “小偷程序”在哪里运行? “小

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

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

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

        “小偷程序” 应该在 Windows 下的 DOS(参考文章:http://blog.csdn.net/liruxing1715/article/details/7079488) 或 Linux 下通过 PHP 命令运行为最佳,因为,网页运行会超时。

        比如图(Windows 下 DOS 为例):

        PHP 实现小偷程序

“小偷程序”的实现

        这里主要通过一个实例来讲解,我们来抓取下“华强电子网”的资讯信息,请先看观察这个链接 http://www.hqew.com/info-c10.html,当您打开这个页面的时候发现这个页面会发现一些现象:

        1、资讯列表有 500 页(2012-01-03);

        2、每页的 url 链接都有规律,比如:第1页为http://www.hqew.com/info-c10-1.html;第2页为http://www.hqew.com/info-c10-2.html;……第500页为http://www.hqew.com/info-c10-500.html;

        3、由第二点就可以知道,“华强电子网” 的资讯是伪静态或者是生成的静态页面

        其实,基本上大部分的网站都有这样的规律,比如:中关村在线、慧聪网、新浪、淘宝……。

        这样,我们可以通过这样的思路来实现页面内容的抓取:

        1、先获取文章列表页内容;

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

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

        这里,我们主要抓取资讯页里面的:标题(title)、发布如期(date)、作者(author)、来源(source)、内容(content)

“华强电子网”资讯抓取

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

CREATE TABLE `article`.`article` (
`id` MEDIUMINT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`date` VARCHAR( 50 ) NOT NULL ,
`author` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`source` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` TEXT NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

        抓取程序:

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

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

执行界面:

PHP 实现小偷程序

数据库:

PHP 实现小偷程序

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn