1. 程式人生 > >快速開發一個PHP電影爬蟲

快速開發一個PHP電影爬蟲

今天來做一個PHP電影小爬蟲。
我們來利用simple_html_dom的採集資料例項,這是一個PHP的庫,上手很容易。
simple_html_dom 可以很好的幫助我們利用php解析html文件。通過這個php封裝類可以很方便的解析html文件,對其中的html元素進行操作 (PHP5+以上版本)
下載地址:https://github.com/samacs/simple_html_dom
下面我們以 http://www.paopaotv.com 上的列表頁 http://paopaotv.com/tv-type-id-5-pg-1.html 字母模式展現的列表為例,抓取頁面上的列表資料,以及內容裡面資訊

 

<?php
include_once 'simple_html_dom.php';
//獲取html資料轉化為物件
$html = file_get_html('http://paopaotv.com/tv-type-id-5-pg-1.html');
//A-Z的字母列表每條資料是在id=letter-focus 的div內class= letter-focus-item的dl標籤內,用find方法查詢即為 
$listData=$html->find("#letter-focus .letter-focus-item");//$listData為陣列物件
foreach($listData as$key=>$eachRowData){
$filmName=$eachRowData->find("dd span",0)->plaintext;//獲取影視名稱
$filmUrl=$eachRowData->find("dd a",0)->href;//獲取dd標籤下影視對應的地址
//獲取影視的詳細資訊
$filmInfo=file_get_html("http://paopaotv.com".$filmUrl);
$filmDetail=$filmInfo->find(".info dl");
foreach($filmDetail as $film){
$info=$film->find("dd");
$row=null;
foreach($info as $childInfo){
$row[]=$childInfo->plaintext;
}
$cate[$key][]=join(",",$row);//將影視的資訊存放到陣列中
}
}

這樣通過simple_html_dom,就可以將paopaotv.com影視列表中資訊,以及影視的具體資訊就抓取到了,之後你可以繼續抓取影視詳細頁面上的視訊地址資訊,然後將該影視的所有資訊都存放到資料庫中。
下面是simple_html_dom常用的屬性以及方法:

$html = file_get_html('http://paopaotv.com/tv-type-id-5-pg-1.html');
$e = $html->find("div", 0);
//標籤
$e->tag;
//外文字
$e->outertext;
//內文字
$e->innertext;
//純文字
$e->plaintext;
//子元素
$e->children ( [int $index] );
//父元素
$e->parent ();
//第一個子元素
$e->first_child ();
//最後一個子元素
$e->last_child ();
//後一個兄弟元素
$e->next_sibling ();
//前一個兄弟元素
$e->prev_sibling ();
//標籤陣列
$ret = $html->find('a');
//第一個a標籤
$ret = $html->find('a', 0);