1 回答

TA貢獻1821條經驗 獲得超5個贊
您可以簡單地先選擇帖子,然后使用以下方法分別獲取每個子數據:
DOMXPath::query
結合DOMDocument::save
檢索消息段落。
代碼:
$xpath = new DOMXPath($dom);
$postsElements = $xpath->query('//*[@class="post"]');
$posts = [];
foreach ($postsElements as $postElement) {
$author = $xpath->evaluate('normalize-space(.//*[@class="who-post"])', $postElement);
$date = $xpath->evaluate('normalize-space(.//*[@class="date-post"])', $postElement);
$message = '';
foreach ($xpath->query('.//*[contains(@class, "message")]/p', $postElement) as $messageParagraphElement) {
$message .= $dom->saveHTML($messageParagraphElement);
}
$posts[] = (object)compact('author', 'date', 'message');
}
print_r($posts);
無關說明:抓取網站的 HTML 本身并不違法,但您應避免在未經他們同意的情況下在您自己的應用程序/網站上顯示他們的數據。此外,如果他們決定更改其 HTML 結構/CSS 類名,這可能會在任何時候中斷。
- 1 回答
- 0 關注
- 127 瀏覽
添加回答
舉報