PHP使用curl抓取新闻数据
来源:网络分享
编辑:引流技巧
时间:2025-10-04

在构建一个网站时,有时我们需要从其他网站抓取新闻内容。这里,我将分享一种使用cURL通过链接获取页面内容的方法,然后利用正则表达式匹配所需的信息。请注意,并非所有网站都可被抓取,必须遵循一定的页面结构,比如下面这种有规律的新闻列表。然而,新闻的详细内容通常需要单独抓取。
$url = "http://xxxx"; // 或者 "https://xxxx" 要抓取的链接新闻列表 $url = str_replace('', '', $url); header("Content-Type: text/html;charset=utf-8"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 忽略https中的"s" curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 不直接输出 $html_data = curl_exec($ch); curl_close($ch); // 关闭会话 // 确保已抓取到页面内容,可打印查看 // 如果未抓取成功,注意检查页面编码,使用iconv()转换编码 //$html_data = iconv('gbk', 'utf-8', $html_data); $regular = '#h1id=activity-name(.*?)\/h1(.*?)spanid=post-date(.*?)span(.*?)pclass=page-content(.*?)pclass=text(.*?)\/p#is'; preg_match_all($regular, $html_data, $connect); // 正规匹配获取所需内容 // 循环提取所需内容数组 foreach ($connect as $k => $var) { if ($k == 2 || $k == 3 || $k == 5 || $k == 7) { $b = array_merge(array_filter($connect[$k])); $array[] = $b; } } // 得到数据数组后,根据需求添加数据 // 若需抓取详细内容,获取新闻详情页链接,同样用cURL获取信息 // 正则表达式的HTML需与页面格式一致,可通过浏览器右键查看源代码来检查格式 // 将要抓取的HTML复制并尝试匹配,若仍有无法抓取的部分,可能是格式问题,如空格差异 // 可逐步匹配,找出未匹配的部分 // 提供网站开发定制服务,基于LINUX + PHP + MYSQL框架构建,欢迎咨询我们的建站热线:400-870-3094

相关文章:
相关推荐:
栏目分类

最新文章

热门文章
