Laravel5爬虫 | Laravel5使用simple_html_dom抓取文章数据


本站的部分文章是在其他平台转载过来的,这里面用到了爬虫技术。

simple_html_dom

simple_html_dom是一款很好用的html Dom解析拓展,对于html内容处理十分强大。
它可以像jQuery一样,通过元素的id,class等标签来定位,很方便的对html元素进行查找选择;同时还提供添加、删除、修改文档树等操作功能。

Laravel5使用simple_html_dom

在Laravel5中可以通过 Composer 直接引入 sunra/php-simple-html-dom-parser 拓展。
sunra/php-simple-html-dom-parser 拓展包地址
php-simple-dom 中文文档

"require": {
    "sunra/php-simple-html-dom-parser": "1.5.2"
    }

然后在使用文件中直接use使用

use Sunra\PhpSimple\HtmlDomParser;
...
$dom = HtmlDomParser::str_get_html( $str );
or 
$dom = HtmlDomParser::file_get_html( $file_name );

$elems = $dom->find($elem_name);
...

Demo

/**
* 爬取某网站文章
*/
    public function crawler()
    {
        //获取html数据转化为对象
        $html = HtmlDomParser::file_get_html("https://www.xxx.com");
        //获取标签内的内容 
        $listData=$html->find("div[class='item']");//$listData为数组对象
        foreach($listData as $k => $v){
            $content_url=$v->find("a[class='content_url']",0)->href;//获取文章地址地址
            $addpost['post_title'] = $v->find("a[class='content_url']",0)->title; //标题
            $addpost['post_excerpt'] = $v->find("p[class='post_excerpt']",0)->plaintext; //描述
                        // 打开获取到的文章地址
            $html_2 = HtmlDomParser::file_get_html($content_url);
            $addpost['post_content'] = $html_2->find("#articleContent",0)->innertext;//内容
            $addpost['post_keywords'] = $html_2->find("meta[name='keywords']",0)->content;//关键字
                        // 保存文章
                        // ...
                        $html_2 ->clear();
        }
        $html->clear();
    }

本文发表于2018年09月19日 14:47
阅读 5318 讨论 1 喜欢 7

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1