PHP爬蟲抓取

來源:互聯網
上載者:User

標籤:com   images   pass   定義   技術   close   網上   end   href   

目標:利用PHP解決網站列表內容抓取

描述:在群裡看到小夥伴問到關於抓取網站列表內容,我就想起了當時工作關於文章採集的問題,但是後面想想又不對,這是列表抓取,於是就想起了大神們經常說的說的“爬蟲”,我想一定可以解決小夥伴的問題,因為是php小白,所以在網上找了很多爬蟲的寫法,但是太長了不想看,受個別啟發看到了fopen()方法,那麼這個方法是幹嘛的,尋找得出“把指定檔案或者url資源綁定到資源流上”,額 好像不錯,就看開始找流的相關用法,看到stream_get_contents(),方法定義是這樣的“把資源流轉化成字串”;這下明白,利用他們就可以解決頁面抓取了,不過不知道是自己能力問題還是什麼發現,效率不是很高呢,測試500個連結10000個資料耗時接近10分鐘;

代碼:

<?phpdefine("URL", "http://www.zcy.gov.cn/search?shopId=6&pageNo=");$start_time = microtime(true);$array = Array();echo ‘<ul class="view-mode-thumb">‘;for($index = 1; $index <= 5; $index++){    $url = URL.$index;    $fp = fopen($url, ‘r‘);    $all_Str = stream_get_contents($fp, -1, -1);    // $len = strlen($all_Str);    $preg =‘/<li class="product\s*\w*" style="\s*\w*\s*">.*?<\/li>/s‘;    $int = @preg_match_all($preg, $all_Str, $arr);    $array = array_merge($array, $arr[0]);}foreach ($array as $key => $value) {    # code...    echo $value;}echo ‘</ul>‘;$end_time = microtime(true);echo "<script>console.log(‘檔案數目:".count($array)."  耗用時間:".($end_time-$start_time)."s‘)</script>";// fpassthru($fp);fclose($fp);exit();?>

 

說明:由於個人能力問題,寫法上可能不是很完善,望見諒!

 

PHP爬蟲抓取

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.