专栏首页Jerry的SAP技术分享使用nodejs将某个简书用户的文章进行导出

使用nodejs将某个简书用户的文章进行导出

今天Jerry发现简书改版后,以前根据问题标题进行搜索的功能消失了,这样我搜索自己过去发表的文章就不太方便。因此,我想写个小程序,把自己过去发表的文章的标题和超链接都下载到本地。

代码如下:

var request = require('request');
var jsdom = require("jsdom");
var JSDOM = jsdom.JSDOM;
const PREFIX = "https://www.jianshu.com";

/* a given article: https://www.jianshu.com/p/963cd23fb092
  value got from API: /p/5c1d0319dc42
*/

var url = "https://www.jianshu.com/u/99b8712e8850?order_by=shared_at&page=2";

var pageOptions = {
        url: url,
        method: "GET",
        headers: {
            "Accept": "text/html"
        }
};

function getArticles() {
  return new Promise(function(resolve,reject){
      var requestC = request.defaults({jar: true});

      requestC(pageOptions,function(error,response,body){
        var document = new JSDOM(body).window.document;
        var content = document.getElementsByTagName("li");

        for( var i =0; i < content.length; i++){
          var li = content[i];
          var children = li.childNodes;
          for( var j = 0; j < children.length; j++){
              var eachChild = children[j];
              if( eachChild.nodeName == "DIV"){
                var grandChild = eachChild.childNodes;
                for( var k = 0; k < grandChild.length; k++){
                  var grand = grandChild[k];
                  if( grand.nodeName == "A"){
                    var fragment = grand.getAttribute("href");
                    if( fragment.indexOf("/p") < 0)
                      continue;
                    console.log("title: " + grand.text);
                    var wholeURL = PREFIX + fragment;
                    console.log("url: " + wholeURL);
                  }
                }
              }
          }
        }
      }); 
     });
}

getArticles().then(function(token) {

});

执行后的输出:

1042416@CTUN50947961A c:\Code\wechat\unittest$ node jianshuexport. js
title:我做SAP CRM One Order redesign的一些心得体会url: https://www.jianshu.com/p/5c1d0319dc42title:一个最简单的webSocket hello world demourl: https://www.jianshu. com/p/b820e0acc120title:推荐一个非常好用的以多tab标签方式打开windows CMD的工具url: https://www.jianshu.com/p/3f8cc02eaa8etitle:基于SAML的web Single Sign On的一个具体例子url: https://www.jianshu.com/p/19344c23doaftitle: SAP CX Upscale Commerce : SAP全新推出的电商云平台url: https://www.jianshu.com/p/5d8352653e67title: TCP socket和web socket的区另
url: https://www.jianshu.com/p/8a08f81d3efbtitle: Visual Studio code设置断点时出现unverified breakpoint的错误处理方式url: https://www.jianshu.com/p/d004f4dc7826title: Fiori Fundamentals和SAP UI5 Web Componentsurl: https://www.jianshu.com/p/5389ca51fa44title: SAP前端技术的演化史简介
url: https://www.jianshu.com/p/140e07afd035

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SAP Marketing Cloud的双重登录认证

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.blog.csdn.net/article/detai...

    Jerry Wang
  • 批量导出某个简书用户的所有文章列表和文章超链接

    虽然简书提供了批量下载文章的功能,但是下载到本地的文章都是markdown格式的,不包含文章的链接,这不满足我的需求。

    Jerry Wang
  • 批量导出某个简书用户的所有文章列表和文章超链接

    虽然简书提供了批量下载文章的功能,但是下载到本地的文章都是markdown格式的,不包含文章的链接,这不满足我的需求。

    Jerry Wang
  • 机器学习中有哪些形式简单却很巧妙的 idea?

    作者:桔了个仔 https://www.zhihu.com/question/347847220/answer/836019446

    Datawhale
  • CNI项目

    说明:CNI(容器网络接口)是一个云原生计算基基金会项目,由规范和软件库组成,用于编写插件配置Linux容器中的网络接口,以及许多受支持的插件。CNI仅关注容器...

    CNCF
  • [前端]使用曲线将多点连成一条平滑的曲线

    之前在写一个项目需要把多点连成平滑的曲线,而且这些点是无法预知的。开始想到用贝塞尔曲线,但是具体贝塞尔曲线的控制点要怎么设定,怎样让多点都落在曲线上而且保持曲线...

    Tuzei
  • 【腾讯云的1001种玩法】IIS7实现全站HTTPS访问

    通常情况下我们是用的都是http的路径,对于https的使用也很少,但是随着https的普及越来越多的域名访问需要用到https的,现在给大家一个教程关于对一个...

    CloudZ
  • 2019年11月最佳开源项目调查结果

    让我来介绍一下2019年11月发现的最好的开源项目。这次,我们介绍的开源项目不止有Python,还有很多别的语言。

    HuangWeiAI
  • 这一堆初中生写的类库、框架,让一群中年程序员坐不住了!

    前不久在V2EX上看到一个帖子,主题是「一堆初中生写的类库、框架」,原本猿妹以为只是个标题党不以为意。点进去该博主的博客主页发现,博主确实是一名初中生,而且他的...

    一墨编程学习
  • 对朋友网站的一次友情测试

    朋友部署了个 Wordpress 的站点,让有时间的时候帮忙测下安全性怎么样,于是呢,有了这篇文章,本意想着WPScan+MSF 这套组合拳可以打通的,奈何现实...

    信安之路

扫码关注云+社区

领取腾讯云代金券