最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 如何利用js做个爬虫获取最新的娱乐新闻

    正文概述 掘金(锋享前端)   2021-01-21   375

    一、引言

    最近娱乐圈比较的火的算是郑爽事件了,作为一名程序猿如何能或者最新的娱乐热点新闻呢? 今天咱们就用js做一个网络爬虫,来爬取一个网站的新闻数据。

    二、什么是爬虫?

    网络爬虫,又称为网页蜘蛛网络机器人,意思是我们通过程序去搜集网络上某些网站的数据。典型的通过爬虫获取数据的网站,比如百度、谷歌等搜索引擎。还有一些新闻聚合类网站,比如今日头条等网站。之前淘宝的一淘,返利网等网站都是利用了爬虫技术去获取别人网站的一些信息。 爬虫也不能乱用,无限制的去爬取一个网站的信息,那样会导致人家公司服务器压力比较大。之前有句爬虫界比较流行的话:爬虫玩的好,监狱进的早;数据玩的溜,牢饭吃个够!做技术的要有自己的底线,之前有程序员用爬虫为公司做了一些工作,结果公司被诉讼,程序猿被带走!

    如何利用js做个爬虫获取最新的娱乐新闻

    三、开始之前

    为了防止出一些意外,首先我们可以访问你要爬取的目标网站的robots协议。 robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络爬虫:此网站中的哪些内容是不应被爬虫获取的,哪些是可以被爬虫获取的。参考robots.txt去爬取数据,再设置一下间歇时间,不会有人在意的。

    首先看一下我们今天要爬取网站的

    robots协议bbs.hupu.com

    如何利用js做个爬虫获取最新的娱乐新闻

    红色部分是关键,所有的网页都不能被爬取!!有句话不知当讲不当讲!

    如何利用js做个爬虫获取最新的娱乐新闻

    冷静下来,文章还没写就要结束了吗?我的kpi咋办!!!

    看看我们的今天要爬取的网页地址,我们今天要爬取的网页后缀名不是html!!!

    不知道是不是网站的技术人员忽略了这样的地址,哈哈哈。

    如何利用js做个爬虫获取最新的娱乐新闻

    四、正式开始

    我们使用nodejs做爬虫,要使用到两个npm包,cheerio 和 axios

    首先按照nodej,然后安装axios和cheerio 。

    五、安装axios

    axios是一个可以发起请求从而获取网页内的包。

    键盘上按win+r

    如何利用js做个爬虫获取最新的娱乐新闻

    输入cmd 就打开了终端

    如何利用js做个爬虫获取最新的娱乐新闻

    终端中输入

    npm i aixos
    

    就可以安装axios

    六、安装cheerio

    安装cheerio cheerio 是一的用法跟jQuery的用法差不多。 就是先将页面的数据load进来形成一个特定的数据格式,然后通过类似jq的语法,对数据进行解析处理。 终端中输入

    npm i cheerio
    

    如何利用js做个爬虫获取最新的娱乐新闻

    七、爬取数据

    新建sp.js文件,写入如下代码

    // 引入包
    const axios = require('axios')
    const cheerio = require('cheerio')
    // 要爬取页面的地址
    let url ='https://bbs.hupu.com/4856'
    
    // 请求页面数据
    axios.get(url).then(res=>{
        // res.data 就是页面的数据
        console.log(res.data);
        // 将页面数据转为$对象
        let $ = cheerio.load(res.data);
        
    })
    
    

    执行node sp.js 命令

    网页的数据已经获取到了,然后我们就可以使用jquery的语法获取页面中的数据了。 下面我们分析一下页面的结构

    如何利用js做个爬虫获取最新的娱乐新闻

    可以看到页面中所有的新闻标题都在a标签中,类名是truetit。然后我们就可以使用jq的选择器获取页面中所有类名为truetit的元素。

    // 引入包
    const axios = require('axios')
    const cheerio = require('cheerio')
    // 要爬取页面的地址
    let url ='https://bbs.hupu.com/4856'
    
    // 请求页面数据
    axios.get(url).then(res=>{
        // res.data 就是页面的数据
        // console.log(res.data);
        // 将页面数据转为$对象
        let $ = cheerio.load(res.data);
        let arr = []
        // 将a标签的数据放到数组中
        $('.truetit').each(function(i,v){
            arr.push($(v).text())
        })
        console.log(arr);
    
    })
    
    

    终端中结果

    如何利用js做个爬虫获取最新的娱乐新闻

    这样每次执行就可以获取最新的娱乐新闻,不需要打开网页就可以获取到,当然我们只是获取了第一页的数据,你也可以获取第二页、第三页等其他页面的数据。 我们现在相当于只获取了一个网站的娱乐数据,如果你再分析一些其他的网站,获取一些其他的网站的数据,然后把数据都存储起来,自己就可以做一个只显示娱乐新闻的网站了!


    起源地下载网 » 如何利用js做个爬虫获取最新的娱乐新闻

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元