美文网首页
用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