教你三步爬取后端优质文章

优采云 发布时间: 2020-08-25 22:36

  教你三步爬取后端优质文章

  打开官网,(F12) 打开开发者模式查看network 选项,咱们可以看见获取文章接口的api如下:

  

  

  打开开发者模式,我们太轻松的找到获取文章的插口,这就好办了,说实话后端开发,只要有了插口,那就等于有了一切,我们可以恣意的 coding 了~

  第二步

  创建服务器文件 app.js ,通过superagent 模块发送恳求获取文章数据。

  app.js 是我们服务端代码,这里通过服务端发送恳求获取爬虫所要的数据保存出来。

  // 定义一个函数,用来获取首页前端文章信息

function getInfo () {

// 利用superagent 模块发送请求,获取前20篇文章。注意请求头的设置和POST请求体数据(请求参数)

superagent.post('https://web-api..im/query').send(params).set('X-Agent', 'Juejin/Web').end((err, res) => {

if (err) {

return console.log(err)

}

// 保存所有文章信息

const array1 = JSON.parse(res.text).data.articleFeed.items.edges

const num = JSON.parse(res.text).data.articleFeed.items.pageInfo.endCursor

// 筛选出点赞数大于 50 的文章

result = array1.filter(item => {

return item.node.likeCount > 50

})

params.variables.after = num.toString()

// 再次发送请求获取另外的20篇文章

superagent.post('https://web-api..im/query').send(params).set('X-Agent', 'Juejin/Web').end((err, res) => {

if (err) {

return console.log(err)

}

const array2 = JSON.parse(res.text).data.articleFeed.items.edges

const result2 = array2.filter(item => {

return item.node.likeCount > 50

})

result2.forEach(item => {

result.push(item)

})

})

})

}

// 调用一次获取数据

getInfo()

// 设置定时器,规定10分钟更新一此数据

setInterval(() => {

getInfo()

}, 10*1000*60)

复制代码

  这里要注意插口那儿须要设置恳求头的 X-Agent 属性,一定要在 superagent 发送 post 请求时侯带上,否则会出错,另外就是固定的恳求参数 params,这个可以仿造官网来写。

  

  第三步

  模板引擎渲染数据,发送结果到浏览器渲染

  这一步须要利用模板引擎渲染 HTML 页面,把从第二步领到的结果渲染到页面中,最终返回给浏览器渲染。

  app.js 代码:

  // *敏*感*词*路由

app.get('/', (req, res, next) => {

res.render('index.html', {

result

})

})

// 绑定端口,启动服务

app.listen(3000, () => {

console.log('running...')

})

复制代码

  模板 index.html 代码 :

  

{{each result}}

{{$value.node.title}}

{{$value.node.likeCount}}

{{/each}}

复制代码

  写在前面

  如果你须要项目的源码可以在GitHub对应库房的 node学习demo案例 文件夹下查找, 谢谢!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线