真正能用的PHP采集程序原理!!
时间:2009-03-07
来源:互联网
采集程序的思路很简单,无非就是先打一个页面,一般都是列表页,取得里面全部链接的地址,然后打开逐条链接,寻找我们感兴趣的东西,如果找到,就把它入库或别的处理。下面以一个很简单的例子来说说。
首先确定一个采集页,一般就是列表面了。这里目标是:http://www.zhanu.com/article/11/index.htm。这是一个列表页,我们的目的就是采集这个列表页上全部的文章。有列表页了,第一步先打开它,把它的内容纳入到我们的程序中来。一般用fopen或是file_get_contents这两个函数,我们这里用fopen作例子。怎么打开它呢?很简单:$source=fopen("[url=http://www.zhanu.com/article/11/index.htm",]http://www.zhanu.com/article/11/index.htm",'r'[/url]);实际上已经把内容纳入到我们的程序中来了。注意得到的$source是一个资源,不是可处理的文本,所以再用函数fread将内容读到一个变量中,这次就是真正的可编辑的文本了。例子:
$content=fread($source,99999);后面的数字表示字节数,填个大的就行。你用file_put_contents将$content写入到一个文本文件,可以看出里面的内容其实就是网页的源码。得到了网页的源码,我们就要分析里面的文章链接地址,这里要用到正则表达式了,[推荐正则表达式教程(http://www.zhanu.com/article/7/all/545.1.htm)]。通过查看源代码,我们可以看到里面文章的链接地址全是这个样子<div class="in_arttitle"><a href="http://www.zhanu.com/article/10/all/273.1.htm"> 将数据库连接代码封装在函数里,在需要读取时调用..</a>
我们就可以写正则表达式了。$count=preg_match_all("/<div class=\"in_arttitle\"><a\shref=\"(.+?)\">(.+?)<\/a>/",$content,$art_list);
其中数组$art_list[1][$s]里面包含的就是某个文章的链接地址。而$art_list[2][$s]包含的就是某一文章的标题。到了这一步就可以算成功了一半了。
接着用for循环依次打每个链接,然后像取得标题一样的方法取得内容即可。以上这些和我在网上找的教程都差不多,但是到了这个for循环网上的教程可就差劲,还没找到一篇可以说清这个事的文章,刚开始我是用js来帮助循环的,还是用实例说吧,刚开始我是这样做的:
for($i=0;$i<20;4i++ {
中间就是采集内容的部分了,省略了
采集了一页,肯定要采集再一页啊
可是再用fopen打开链接时就不行了。请求失败什么的,用js也不行,最后才知道要用这句echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=aa.php?id=1'>";其中aa.php就是我们的程序的文件名, id后面的数字就可以帮助我们实现循环,采集多个页面。这就是能真正循环起来的关键
}
脑子有点难受,写得有点乱,将就着看吧,在高手看来这可能没什么大不了的,可是对于我等菜鸟来说,实在是很有帮助。
作者: wulfalone 发布时间: 2009-03-07
作者: okjoyel 发布时间: 2009-03-07
作者: lxylxy888666 发布时间: 2009-03-07
作者: diego 发布时间: 2009-03-09
作者: 极品穷人 发布时间: 2009-03-09
作者: 0hudu 发布时间: 2009-03-09
作者: paomian567 发布时间: 2009-03-11
我先获取页面文本,然后处理
作者: webzhangyi 发布时间: 2009-03-11
作者: 不规则 发布时间: 2009-03-12
作者: qihang35 发布时间: 2009-03-14
作者: casual0402 发布时间: 2009-03-14
阿胶 补血 物流软件 迅雷电影下载
作者: fengaini 发布时间: 2009-03-17
作者: xiao243410 发布时间: 2009-03-17
作者: linjize123 发布时间: 2009-03-23
作者: T.T.R 发布时间: 2009-03-23
既然有好的,就拿出来一起学习嘛~~

作者: kwlong2008 发布时间: 2009-03-24
作者: sandssss 发布时间: 2009-05-03
作者: wanchun0222 发布时间: 2009-05-05
作者: shooting 发布时间: 2009-05-06
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28