当前位置: 首页 > 后端技术 > Node.js

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

时间:2023-04-03 12:41:17 Node.js

简书改版后,根据文章标题搜索文章的功能没有了。虽然简书提供了批量下载文章的功能,但是下载到本地的文章都是markdown格式,不包含文章链接,不符合我的需求。由于我是程序员,没有这个功能我就自己实现一个。打开简书首页,发现默认只显示8篇文章。鼠标滑到屏幕底部后,会触发懒加载事件,在后台阅读更多文章列表,所以文章阅读是在服务端通过分页实现的。.打开Chrome开发者工具,观察网络请求。请求url中的99b8712e8850是我的简书用户ID,page=2,3,4是分页码。每个页面的文章内容以html格式包含在响应结构中:我只关心文章标题和文章链接,如上图高亮字段所示。最近我写了一个nodejs应用,代码如下:varrequest=require('request');varjsdom=require("jsdom");varJSDOM=jsdom.JSDOM;constPREFIX="https://www.jianshu.com";constPAGE="https://www.jianshu.com/u/99b8712e8850?order_by=shared_at&page=";constMAX=2;varmArticleResult=newMap();varpageNumber;/*给定文章:https://www.jianshu.com/p/963cd23fb092从API获取的值:/p/5c1d0319dc42*/varlastPageReached=false;varurl="";varaHandlers=[];//使用有限的for循环来简化testingfor(vari=0;i";constfs=require('fs');/*

eee

22

33

*/varindex=1;for(var[key,value]ofmArticleResult){vararticle="

"+index+++"."+value+"

"+"\n";resultHTML=resultHTML+文章;console.log("Article["+articleIndex+++"]:"+value+"="+key);}resultHTML=resultHTML+"";varpwd=process.cwd()+"/jianshu.html";fs.appendFileSync(pwd,resultHTML);console.log("done");functionhandleResponseHTML(html){vardocument=newJSDOM(html).window.document;varcontent=document.getElementsByTagName("li");for(vari=0;i