当前位置:首页 > PHP教程 > php应用 > 列表

PHP file_get_contents采集程序开发教程详解

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-21 10:56:28 浏览: 评论:0 

file_get_contents() 远程文件获取函数,用来获取远程页面内容 

preg_match_all()进行全局正则表达式匹配,匹配多次,用于匹配列表 

preg_match   ()进行正则表达式匹配,匹配一次,用于匹配终端 

preg_replace ()进行正则表达式替换,用于过滤终端

具体步骤

Step 1 获取单页列表 和 单篇文章内容

在批量采集列表和内容之前,我们先将网站的单页列表和单篇文章的内容采集作为测试正则表达式对错.

列表页采集文章的链接地址,代码如下:

  1. <?php 
  2.  //获取列表 
  3.  $url = '/s2005/shishi.shtml'
  4.  $con=file_get_contents($url); 
  5.  //写正则获取列表中的文章链接 
  6.  /*范例 : <a test=a href='/20130418/n373177942.shtml' 
  7.           target='_blank'>湖南沅陵输电工程沉船事故共致6人死亡</a>*/ 
  8.  $preg = "|<a test=a href='(.*)' target='_blank'>(.*)</a>|iUs"
  9.  // 正则中的/i表示 大小写不敏感 /U 非贪婪匹配 /s 点号可以匹配换行符 
  10.  preg_match_all($preg,$con,$arr); 
  11.  //var_dump($arr); 
  12.     /* 
  13.     array(3) { 
  14.   [0]=> 
  15.   array(40) { 
  16.     [0]=> 
  17.     string(126) "<a test=a href='/20130418/n373180618.shtml' 
  18. target='_blank'>甘肃河西走廊遭大风沙尘侵袭 瞬时最大风力9级</a>" 
  19.     [1]=> 
  20.     string(112) "<a test=a href='/20130418/n373180612.shtml' 
  21. target='_blank'>一线城市住宅地价全部环比上涨</a>" 
  22.     ... ... 
  23.     [39]=> 
  24.     string(124) "<a test=a href='/20130418/n373161633.shtml' 
  25. target='_blank'>湖南衡阳发生一起枪击案致1人死 警方正缉凶</a>" 
  26.   } 
  27.   [1]=> 
  28.   array(40) { 
  29.     [0]=> 
  30.     string(46) "/20130418/n373180618.shtml" 
  31.     [1]=> 
  32.     string(46) "/20130418/n373180612.shtml" 
  33.     ... ... 
  34.     [39]=> 
  35.     string(46) "/20130418/n373161633.shtml" 
  36.   } 
  37.   [2]=> 
  38.   array(40) { 
  39.     [0]=> 
  40.     string(42) "甘肃河西走廊遭大风沙尘侵袭 瞬时最大风力9级" 
  41.     [1]=> 
  42.     string(28) "一线城市住宅地价全部环比上涨" 
  43.     ... ... 
  44.     [39]=> 
  45.     string(40) "湖南衡阳发生一起枪击案致1人死 警方正缉凶" 
  46.   } 
  47. } 
  48.     */ 
  49. ?> 

单篇文章的采集,代码如下:

  1. <?php 
  2. $url = 'http://www.phpfensi.com'
  3. $con = file_get_contents($url); 
  4. //正则表达式分为标题和内容 
  5. $title_preg = "|<h1>(.*)</h1>|iUs"
  6. $content_preg = "|<!-- 正文 -->(.*)<!-- 分享 -->|iUs"
  7. preg_match($title_preg,$con,$title_arr); 
  8. preg_match($content_preg,$con,$content_arr); 
  9. ?> 

Tags: file_get_contents 采集程序

分享到: