您的当前位置:首页>全部文章>文章详情

PHP使用Simple_html_dom采集网页内容采集网页内容和标题、图片等

发表于:2024-05-20 17:13:22浏览:311次TAG: #PHP #ThinkPHP #爬虫 #正则 #采集

PHP采集网页内容标题图片等方法,PHP爬虫简单技术

环境:ThinkPHP8,PHP8

通过使用simple_html_dom库,你可以轻松实现以下功能

  • 网页内容抓取:获取指定网页的内容,包括文本、图片、链接等。
  • HTML文档解析:将HTML字符串转换为DOM对象树,便于查找和操作元素。
  • HTML元素操作:添加、删除、修改HTML元素,实现网页内容的动态更新。
  • CSS选择器支持:通过CSS选择器快速定位目标元素,简化代码编写过程。

下载安装: composer require voku/simple_html_dom

使用:

use voku\helper\HtmlDomParser;

例如采集网页:http://www.news.cn/tech/20240520/f5652ab6026e48028e89234b7cd60eaa/c.html

$url = "http://www.news.cn/tech/20240520/f5652ab6026e48028e89234b7cd60eaa/c.html";
$arrContextOptions=array(
            "ssl"=>array(
                "verify_peer"=>false,
                "verify_peer_name"=>false,
            ),
        );
        $html = file_get_contents($url, false, stream_context_create($arrContextOptions));
        $filename = 'ok.html';
        $file = file_put_contents($filename, $html);

把获取的html代码保存到一个文件中以方便查看网页代码结构,打开ok.html 查看html结构,内容页面在 <div data="datasource:20240520f5652ab6026e48028e89234b7cd60eaa" datatype="content" id="detail">   节点

//content
$dom = HtmlDomParser::str_get_html($html);
$elements = $dom->find('div#detail'); // 注意这里的节点信息自己查看,可能会变动的
$data['content'] = $elements->innerhtml[0];

 其中 innerhtml[0]是我们要的添加到数据库里面的内容代码;