① 用php進行數據採集
$strPreg = "|<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>|U";
搞定了才發現你都沒懸賞分。。。
② php使用3種方法實現數據採集 什麼叫採集
下面的php代碼可以將HTML表格的每行每列轉為數組,採集表格數據
<?php function get_td_array($table) { $table = preg_replace("'<table[^>]*?>'si","",$table); $table = preg_replace("'<tr[^>]*?>'si","",$table); $table = preg_replace("'<td[^>]*?>'si","",$table); $table = str_replace("</tr>","{tr}",$table); $table = str_replace("</td>","{td}",$table); //去掉 HTML 標記 $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); //去掉空白字元 $table = preg_replace("'([rn])[s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } return $td_array; } ?>
③ php自動採集如何實現
PHP自動採集能一定程度的實現,部分網站的頁面結構存在一定的共通點,比如文章內容頁的標題,不少網站是標記在<h1>里的,實在不行,就採集<title>,絕對能採到,然後、過濾掉title裡面的網站名稱。
採集文章內容就相對麻煩,但是通過層層分析,層層剝離,一定要進行大量的網站分析,寫出多套通用性比較強的採集規則,程序在採集的時候也要進行大量分析。
有幾點是可以肯定的,那就是絕對不能要求採集效果達到為某個網站單獨寫採集規則來的效果好,也絕對不是能匹配任意網站,頂多能匹配部分網站。