美文网首页
用Nodejs爬取Matrix67的博客

用Nodejs爬取Matrix67的博客

作者: 一个灰 | 来源:发表于2018-09-19 23:19 被阅读0次

    Matrix67 有大量好玩的内容,可惜作者一直使用这个奇怪的博客,没有索引分类什么的,只有一页页看,我一气之下写了一个爬虫,把所有文章链接和标题打印了出来。供大家方便查看。

    • 用到了got库——一个轻量级请求http的库
    • jsdom库——用来在node端解析HTML的DOM结构的库
    const got = require('got')
    const { JSDOM } = require("jsdom");
    var i = 1
    function startCatch(){
        i++
        got('http://www.matrix67.com/blog/page/'+i).then(v=>{
            const dom = new JSDOM(v.body)
            const nodeList = dom.window.document.querySelectorAll('.entry-title')
        for(let el of nodeList){
            console.log(el.innerHTML)
        }
            startCatch()
        })
    }
    startCatch()
    

    有人看出这个程序是个无限递归程序。其实

    • 这个程序不是递归程序
    • 这个程序也不是无限死循环
      因为startCatch()的调用并非在自身里面,而是在then传入的那个函数里面。至于程序何时退出,那就是访问出错的时候,即不存在文章地址的时候。

    这个小小的爬虫程序如果换成其他语言写,就很难这么简洁而优雅了。
    简书有字数限制,故无法把爬取的内容发布出来。可以点击这里看

    相关文章

      网友评论

          本文标题:用Nodejs爬取Matrix67的博客

          本文链接:https://www.haomeiwen.com/subject/lbiwnftx.html