使用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) {
});

执行后的输出:

image.png

相关文章
|
存储 JavaScript 容器
基于node.js开发的文章生成器(三、占位符的替换与段落的生成与文章的生成)
# 引言 前面我们已经学会了随机抽取语料库,接下来我们来真正意义上的合成句子。 # 生成废话的样子 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/y3obldvnqeb54_0f21b20ff7d8408e8a8743b2911e6076.png) 大概是这样 但是前面我们提取到的data是带有一定占位符的,首先我们就要完成占位符的替换。 # 占位符的替换 接下来我们来做占位符的替换,我们定义一个sentence的函数,然后传入两个参数,pick和replacer,其中,pick函数分为pickFamous,pi
基于node.js开发的文章生成器(三、占位符的替换与段落的生成与文章的生成)
|
存储 Web App开发 JSON
一篇文章带你看懂Node.js
一篇文章带你看懂Node.js
145 0
一篇文章带你看懂Node.js
|
JavaScript 前端开发
使用await和async关键字开发nodejs应用批量取出简书网站的文章标题和超链接
ES6的await和async出来已经那么久了,一起来学习一下吧。 还是用我之前的读取某个简书用户所有文章列表的例子。 先看主函数框架:
使用await和async关键字开发nodejs应用批量取出简书网站的文章标题和超链接
|
JavaScript 前端开发
使用await和async关键字开发nodejs应用批量取出简书网站的文章标题和超链接
使用await和async关键字开发nodejs应用批量取出简书网站的文章标题和超链接
127 0
使用await和async关键字开发nodejs应用批量取出简书网站的文章标题和超链接
|
存储 JavaScript 前端开发
文章详情 PayPal 为什么从 Java 迁移到 Node.js:性能提高一倍,文件代码减少44%
大家都知道 PayPal 是另一家迁移到 Node.js 平台的大型公司,Jeff Harrell 的这篇博文 Node.js at PayPal 解释了为什么从Java迁移出来的原因:开发效率提高一倍(2个人用更少的时间干了5个人的活),性能提高一倍,代码量减少33%, 文件减少40%。
317 0
文章详情 PayPal 为什么从 Java 迁移到 Node.js:性能提高一倍,文件代码减少44%
|
Web App开发 开发框架 JavaScript
从零开始nodejs系列文章
从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发。Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎。chrome浏览器就基于V8,同时打开20-30个网页都很流畅。Nodejs标准的web开发框架Express,可以帮助我们迅速建立web站点,比起PHP的开发效率更高,而且学习曲线更低。非常适合小型网站,个性化网站,我们自己的Geek网站!!
245 0
从零开始nodejs系列文章
|
Web App开发 数据采集 JavaScript
|
数据采集 移动开发 JavaScript
简易nodejs爬虫抓取博客园指定用户的文章及浏览量
需要安装nodejs和cheerio模块 实现了自定义用户,自定义页数,抓取完毕自动停止无重复 可以按需修改文章类和评论的类名   用法: 首先 npm install cheerio  执行 node cnblog [username] 文件结果保存在res/cnblog.
1014 0
|
6天前
|
JSON JavaScript 前端开发
❤Nodejs 第九章(token身份认证和express-jwt的安装认识)
【4月更文挑战第9天】Node.js第九章介绍了Token身份认证,特别是JWT(JSON Web Token)作为跨域认证的解决方案。JWT由Header、Payload和Signature三部分组成,用于在客户端和服务器间安全传输用户信息。前端收到JWT后存储在localStorage或sessionStorage中,并在请求头中发送。Express-JWT是一个中间件,用于解析JWT。基本用法包括设置secret和algorithms。注意安全问题,避免混合使用不同算法以防止降级攻击。
46 0