PHP file_get_contents採集程式開發教程詳解

來源:互聯網
上載者:User


file_get_contents() 遠程檔案擷取函數,用來擷取遠程頁面內容
preg_match_all()進行全域Regex匹配,匹配多次,用於匹配列表
preg_match   ()進行Regex匹配,匹配一次,用於匹配終端
preg_replace ()進行Regex替換,用於過濾終端

具體步驟

Step 1 擷取單頁列表 和 單篇文章內容
在批量採集列表和內容之前,我們先將網站的單頁列表和單篇文章的內容採集作為測試Regex對錯。

列表頁採集文章的連結地址:

 代碼如下 複製代碼

<?php
 //擷取列表
 $url = '/s2005/shishi.shtml';
 $con=file_get_contents($url);
 //寫正則擷取列表中的文章連結
 /*範例 : <a test=a href='/20130418/n373177942.shtml'
          target='_blank'>湖南沅陵輸電工程沉船事故共致6人死亡</a>*/
 $preg = "|<a test=a href='(.*)' target='_blank'>(.*)</a>|iUs";
 // 正則中的/i表示 大小寫不敏感 /U 非貪婪匹配 /s 點號可以匹配分行符號
 preg_match_all($preg,$con,$arr);
 //var_dump($arr);
    /*
    array(3) {
  [0]=>
  array(40) {
    [0]=>
    string(126) "<a test=a href='/20130418/n373180618.shtml'
target='_blank'>甘肅河西走廊遭大風沙塵侵襲 瞬時最大風力9級</a>"
    [1]=>
    string(112) "<a test=a href='/20130418/n373180612.shtml'
target='_blank'>一線城市住宅地價全部環比上漲</a>"
    ... ...
    [39]=>
    string(124) "<a test=a href='/20130418/n373161633.shtml'
target='_blank'>湖南衡陽發生一起槍擊案致1人死 警方正緝兇</a>"
  }
  [1]=>
  array(40) {
    [0]=>
    string(46) "/20130418/n373180618.shtml"
    [1]=>
    string(46) "/20130418/n373180612.shtml"
    ... ...
    [39]=>
    string(46) "/20130418/n373161633.shtml"
  }
  [2]=>
  array(40) {
    [0]=>
    string(42) "甘肅河西走廊遭大風沙塵侵襲 瞬時最大風力9級"
    [1]=>
    string(28) "一線城市住宅地價全部環比上漲"
    ... ...
    [39]=>
    string(40) "湖南衡陽發生一起槍擊案致1人死 警方正緝兇"
  }
}
    */
?>

單篇文章的採集:

 代碼如下 複製代碼

<?php
$url = 'http://www.111cn.net';
$con = file_get_contents($url);
//Regex分為標題和內容
$title_preg = "|<h1>(.*)</h1>|iUs";
$content_preg = "|<!-- 本文 -->(.*)<!-- 分享 -->|iUs";
preg_match($title_preg,$con,$title_arr);
preg_match($content_preg,$con,$content_arr);
?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.