本文将演示如何利用PHP和CURL高效抓取目标网站的新闻列表和新闻详情。此过程包含两个关键步骤:提取新闻列表页中新闻标题及其相对路径并将其转换为完整路径;以及根据列表页链接访问新闻详情页并提取新闻内容。
首先,我们解决第一个挑战:获取新闻列表及完整路径。这需要使用正则表达式从目标网站的HTML代码中提取所需信息。以下代码片段展示了如何利用正则表达式提取新闻标题和相对路径:
$html = '<div class="box list channel max-border list-text-my"><ul><li><a href="https://www.php.cn/link/b999a556e5f6186b8cba2dd848c22711" title="">[2022-12-13]新闻1</a></li> <li><a href="https://www.php.cn/link/7c1373b8fec010dba9b2cf06e7b232a7" title="">[2022-12-13]新闻2</a></li> <li><a href="https://www.php.cn/link/afe7064469e1509a007b92118aee4524" title="">[2022-12-13]新闻3</a></li></ul></div>';preg_match_all('/<a href="https://www.php.cn/link/01bebc8e971d09cb90cf5756b340f24c">(.*?)</a>/s', $html, $matches);$newslist = [];$base_url = 'http://www.xx.com/news'; // 需根据实际情况修改网站基础URLforeach ($matches[1] as $key => $relativepath) { $newslist[] = [ 'title' => trim($matches[2][$key]), 'url' => $base_url . $relativepath ];}print_r($newslist);
登录后复制
本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。