首頁  >  文章  >  後端開發  >  使用 PHP 實作爬取豆瓣影評的教學課程

使用 PHP 實作爬取豆瓣影評的教學課程

PHPz
PHPz原創
2023-06-14 17:06:591388瀏覽

隨著電影市場的不斷擴展與發展,人們對電影的需求也越來越高。而針對電影的評價,豆瓣影評一直以來都是比較權威、受歡迎的選擇。有時候,我們也需要對豆瓣影評進行一定的分析和處理,這需要使用爬蟲技術來獲取豆瓣影評的資訊。本文將介紹如何使用 PHP 來實作爬取豆瓣影評的教程,供大家參考。

  1. 取得豆瓣電影的頁面位址

在實作爬取豆瓣影評之前,需要先取得豆瓣影片的頁面位址。可以透過搜尋引擎或直接存取豆瓣電影的電影清單介面來取得電影的頁面位址。例如我們要獲取電影《肖申克的救贖》的頁面地址,可以在豆瓣電影的電影列表界面進行搜索,也可以直接在瀏覽器中輸入電影的頁面地址:https://movie.douban.com/subject/ 1292052/。

  1. 使用 PHP 實作存取豆瓣電影頁面並取得頁面內容

#PHP 提供了 cURL 函式庫來進行網頁的存取和資料取得。以下給出一段 PHP 程式碼範例來實作存取豆瓣電影頁面,並取得頁面內容:

$url = 'https://movie.douban.com/subject/1292052/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
curl_close($ch);
echo $html;

在程式碼中,首先定義了豆瓣電影的頁面位址,然後使用 curl_init() 函數來初始化 cURL 物件。然後使用 curl_setopt() 函數設定 curl 物件的參數,其中 CURLOPT_URL 設定存取的 URL 位址, CURLOPT_RETURNTRANSFER 設定傳回結果為字串。然後使用 curl_exec() 函數來執行 cURL 抓取操作,將結果賦值給變數 $html。最後使用 curl_close() 函數關閉 cURL 會話並釋放相關資源,然後輸出變數 $html 的值。

執行以上程式碼,即可輸出豆瓣影片頁面的 HTML 內容。

  1. 解析豆瓣影評頁面的 HTML 內容

在取得了頁面的 HTML 內容之後,接下來需要用 PHP 解析 HTML 內容,擷取豆瓣影評的資訊。

在 PHP 中,可以使用 SimpleXML 擴充功能來實現對 XML 或 HTML 資料的解析。以下是一段PHP 程式碼範例,用於解析豆瓣影評頁面的HTML 內容並提取出影評的評分和評論內容:

$url = 'https://movie.douban.com/subject/1292052/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
curl_close($ch);

// 使用 SimpleXML 解析 HTML 内容
$xml = simplexml_load_string($html);
$ratings = array();
$comments = array();

// 获取影评评分和评论内容
foreach ($xml->xpath('//div[@class="comment-item"]') as $comment) {
    $rating = $comment->div[2]->span[2]->text();
    $comment_content = $comment->div[2]->p->text();
    $ratings[] = (string)$rating;
    $comments[] = (string)$comment_content;
}

print_r($ratings);
print_r($comments);

在程式碼中,首先定義了豆瓣影片的頁面位址,然後使用curl 進行頁面的存取和取得HTML 內容的操作。

接下來使用 simplexml_load_string() 函數將 HTML 內容解析成 SimpleXML 物件。然後使用 xpath() 函數和 XPath 查詢語句來獲取頁面中所有的影評信息,使用 foreach 語句遍歷每一條影評,並獲取其中的評分和評論內容。最後將評分和評論分別儲存到 $ratings 和 $comments 數組中,並輸出這兩個數組的內容。

執行上述程式碼,即可解析出豆瓣影評頁面中的所有影評資訊。

  1. 輸出影評資訊

接下來,將取得的影評資訊進行輸出,可以使用 HTML 和 CSS 來美化輸出內容。以下是一段PHP 程式碼範例,用於美化並輸出豆瓣影評頁面中的影評資訊:

$url = 'https://movie.douban.com/subject/1292052/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
curl_close($ch);

// 使用 SimpleXML 解析 HTML 内容
$xml = simplexml_load_string($html);
$ratings = array();
$comments = array();

// 获取影评评分和评论内容
foreach ($xml->xpath('//div[@class="comment-item"]') as $comment) {
    $rating = $comment->div[2]->span[2]->text();
    $comment_content = $comment->div[2]->p->text();
    $ratings[] = (string)$rating;
    $comments[] = (string)$comment_content;
}

// 输出美化的影评信息
echo '<style>table, th, td {border: 1px solid black; border-collapse: collapse;} th, td {padding: 5px;}</style>';
echo '<table><tr><th>评分</th><th>评论内容</th></tr>';
for ($i = 0; $i < count($ratings); $i++) {
    echo '<tr><td>' . $ratings[$i] . '</td><td>' . $comments[$i] . '</td></tr>';
}
echo '</table>';

在程式碼中,首先使用curl 取得豆瓣電影頁面的HTML 內容,然後使用SimpleXML 解析HTML 內容並取得影評的評分和評論內容。

接下來使用 HTML 和 CSS 來美化輸出內容,包括新增表格樣式,設定表頭和表格內容,並使用 for 迴圈遍歷每個影評並輸出評分和評論內容。

執行以上程式碼,即可輸出美化後的豆瓣影評頁面的影評資訊。

綜上所述,本文介紹如何使用 PHP 實作爬取豆瓣影評的教學。透過學習,讀者可以了解使用 PHP 和 cURL 技術實現網頁存取和資料抓取的方法,以及使用 SimpleXML 擴充程式解析 HTML 內容和美化輸出的技巧。

以上是使用 PHP 實作爬取豆瓣影評的教學課程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn