使用PHP做網頁採集例項過程總結

2021-06-19 22:35:39 字數 1208 閱讀 4724

最近有個任務是需要我檢查一些**,如果純手工檢查的話,感覺既費時又無聊。所以我就想用採集。思路其實很簡單,先把**的原始碼採集下來,然後用正規表示式去匹配符合的鏈結,最後把標題和**入庫、分析。因為我使用最多的是php,所以打算用php做網頁採集。

第一步,鏈結資料庫,取出需要檢查的**和正則。

資料庫這裡我用了postgresql,資料庫和表已經按要求建好。因為預設配置的環境是centos系統加nginx、mysql和php,所以首先是配置環境。配置具體不在這裡多說,下次總結。環境配置好後在php中用pg_connect連線資料庫,這裡我連線了兩個不同的資料庫。

$conn_1=pg_connect("host=***.***.***.*** port=5432 dbname=mydb1 user=postgres password=******") ;

$conn_2=pg_connect("host=***.***.***.*** port=5432?dbname=mydb2?user=postgres password=******") ;

第二步,取出網頁原始碼,對原始碼進行初步處理。

不同**編碼格式不一樣,需要先把編碼統一轉換成utf-8,不然之後入庫會出現亂碼。

//獲取網頁原始碼

//$url='' ;

$str = file_get_contents($url);

//使用preg_match和正規表示式取出編碼

$wcharset = preg_match("///編碼轉換

if($wcharset)

這裡我還使用str_ireplace()函式對取到的原始碼做了些字元替換,不然最後用正則匹配**的時候會出現問題。

第三步,匹配處理後的原始碼字串,對匹配的資料入庫。

從資料庫中取出對應的正則,儲存在$preg變數,符合正則的資料已陣列形式儲存在$m。

$pat = "/(.*?)<\/a>/is";

preg_match_all($pat, $str, $m);

$cnt=count($m[2]) ;

for($i=0;$i<$cnt;$i++)

if(strip_tags($m[4][$i]))

else

//編寫**,對title和url進行入庫操作。}}

採集單個網頁這樣基本上就算完成了。總結,這裡其實就用了preg_match(),preg_match_all()和str_ireplace()函式。程式菜鳥,寫的不好請見諒。

PHP例項 CURL實現簡單採集

在php中我們可以通過編寫curl來實現採集的功能,先分析需要採集的資料的 的特點,加入到我們的curl的屬性中來,實現我們定製採集的功能,最終得到我們需要的結果。curl的使用 preg match all array filter explode php中建立curl請求的基本步驟 1 建立乙個...

php獲取網頁內容方法 採集程式

用php採集程式,抓取頁面的內容在實際的開發當中是非常有用的,如作乙個簡單的內容採集器,提取網頁中的部分內容等等 抓取到的內容在通過正規表示式做一下過濾就得到了你想要的內容,幾種常用的用php抓取網頁中的內容的方法。1.file get contents url contents file get ...

使用phpQuery輕鬆採集網頁內容

phpquery是乙個基於php的服務端開源專案,它可以讓php開發人員輕鬆處理dom文件內容,比如獲取某新聞 的頭條資訊。更有意思的是,它採用了jquery的思想,你可以像使用jquery一樣處理頁面內容,獲取你想要的頁面資訊。採集頭條 include phpquery phpquery.php ...