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
阅读 106 讨论 1 喜欢 3

讨论

周娱

君子和而不同
按照自己的方式,去度过人生

4601 1243822
抢先体验

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

加入组织

扫码添加周娱微信
备注“加入组织”
邀请进开发群

闪念胶囊

不积跬步无以至千里,越焦虑越要扎实干。

不要试图鹤立鸡群,趁早离开那群鸡!

程序员过节需要的不是美女、不是美食、不是不加班!他们需要的是写代码,一群人写、往死里写、通宵写!!那种暗流涌动的狂欢,远比虚无庸俗的食色更让他们振奋!! by芋头

面试的时候,常常会问数组和链表的区别,很多人都回答说,“链表适合插入、删除,时间复杂度 O(1);数组适合查找,查找时间复杂度为 O(1)”。 实际上,这种表述是不准确的。数组是适合查找操作,但是查找的时间复杂度并不为 O(1)。即便是排好序的数组,你用二分查找,时间复杂度也是 O(logn)。 所以,正确的表述应该是,数组支持随机访问,根据下标随机访问的时间复杂度为 O(1)。

找一个bug就好比从一泡烂泥里找一条泥鳅,写一个bug就好比往一泡烂泥里丢一条泥鳅进去

数据结构在某种程度上和设计模式类似,都是前辈的武功套路。不同的是,设计模式是近几十年的卓越程序员的智慧结晶,而数据结构是几百上千年的无数科学家、数学家的智慧沉淀,更加具有深厚的背景。

18年元旦立下的flag要集中突击一下了.....

人生是一场马拉松,起跑的优劣对于整段路途而言并没有那么重要,笑到最后的都是一直在跑的人,也就是一辈子都在学习的人。

角色是谁并不重要,重要的是会不会抢戏~

Copyright © 2016 - 2018 Cion.
All Rights Reserved.
备案:鲁ICP备16007319号.