为什么使用“小偷程序”?
远程抓取文章资讯或商品信息是很多企业要求程序员实现的功能,也就是俗说的小偷程序。其最主要的优点是:解决了公司网编繁重的工作,大大提高了效率。只需要一运行就能快速的抓取别人网站的信息。
“小偷程序”在哪里运行?
“小偷程序” 应该在 Windows 下的 DOS或 Linux 下通过 PHP 命令运行为最佳,因为,网页运行会超时。
比如图(Windows 下 DOS 为例):
“小偷程序”的实现
这里主要通过一个实例来讲解,我们来抓取下“华强电子网”的资讯信息,请先看观察这个链接 ,当您打开这个页面的时候发现这个页面会发现一些现象:
1、资讯列表有 500 页(2012-01-03);
2、每页的 url 链接都有规律,比如:第1页为;第2页为;……第500页为;
3、由第二点就可以知道,“华强电子网” 的资讯是伪静态或者是生成的静态页面
其实,基本上大部分的网站都有这样的规律,比如:中关村在线、慧聪网、新浪、淘宝……。
这样,我们可以通过这样的思路来实现页面内容的抓取: 1、先获取文章列表页内容; 2、根据文章列表页内容循环获取文章的 url 地址; 3、根据文章的 url 地址获取文章的详细内容
这里,我们主要抓取资讯页里面的:标题(title)、发布如期(date)、作者(author)、来源(source)、内容(content)
“华强电子网”资讯抓取
首先,先建数据表结构,如下所示:
抓取程序:
/**
- stripTitleTag($title) 对文章标题进行过滤
- @param string $v
- @return string
*/
function stripAuthorTag($v) {
$v = preg_replace('/<a href=".+" target="_blank">(.+)<\/a>/Usi',$v);
return $v;
}
/**
- MysqLString($str) 过滤数据
- @param string $str
- @return string
*/
function MysqLString($str) {
return addslashes(trim($str));
}
/**
- init($min,$max) 入口程序方法,从 $min 页开始取,到 $max 页结束
- @param int $min 从 1 开始
- @param int $max
- @return string 返回 URL 地址
*/
function init($min=1,$max) {
for ($i=$min; $i<=$max; $i++) {
data("http://www.hqew.com/info-c10-{$i}.html");
}
}
init(1,500); // 程序入口,从第一页开始抓,抓取500页
?>
通过上面的程序,就可以实现抓取华强电子网的资讯信息。
入口方法 init($min,$max) 如果想抓取 1-500 页面内容,那么 init(1,500) 即可!这样,用不了多长时间,华强电子网的资讯就会全部抓取到数据库里面了。^_^
执行界面:
数据库:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。