shua.js 笔记

举报
拿我格子衫来 发表于 2022/03/17 23:04:07 2022/03/17
【摘要】 let superagent = require('superagent')let cheerio = require('cheerio') let baseUrl = 'https://blog.csdn.net/github_35631540/article/list/1'// https://blog.csdn.net/githu...

  
  1. let superagent = require('superagent')
  2. let cheerio = require('cheerio')
  3. let baseUrl = 'https://blog.csdn.net/github_35631540/article/list/1'
  4. // https://blog.csdn.net/github_35631540/article/list/1?t=1&
  5. // https://blog.csdn.net/github_35631540/article/list/2?t=1&
  6. // https://blog.csdn.net/github_35631540/article/list/3?t=1&
  7. let blogHrefArr = []
  8. let totalPage = 4
  9. const setData = {
  10. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
  11. 'Referrer': 'https://blog.csdn.net/github_35631540?t=1',
  12. 'Content-Type': 'text/html; charset=UTF-8',
  13. }
  14. let mainFun = () => {
  15. superagent
  16. .get(`${baseUrl}`)
  17. .set(setData)
  18. .end((err, res) => {
  19. let $ = cheerio.load(res.text)
  20. let len = $('.article-list .content a').length
  21. if (len > 0) {
  22. console.log(`获取到${len}条博客记录`)
  23. console.log(`开始爬取博客记录....`)
  24. for (let i = 0; i < $('.article-list .content a').length; i++) {
  25. let blogItem = {
  26. name: $('.article-list h4').eq(i).text().replace(/\s+/g, ''),
  27. href: $('.article-list .content a').eq(i).attr('href'),
  28. }
  29. getBlogDetail(blogItem)
  30. blogHrefArr.push(blogItem)
  31. }
  32. // console.log(blogHrefArr)
  33. }
  34. })
  35. }
  36. let getBlogDetail = (blogItem) => {
  37. superagent
  38. .get(`${blogItem.href}`)
  39. .set(setData)
  40. .end((err, res) => {
  41. if(res.statusCode === 200) {
  42. console.log(`爬取成功:__${blogItem.name}`)
  43. }
  44. })
  45. }
  46. // 使用递归获取所有页的博客链接
  47. let getAllBlogHreef = (n) => {
  48. superagent
  49. .get(`https://blog.csdn.net/github_35631540/article/list/${n+1}?t=1&`)
  50. .set(setData)
  51. .end((err,res) => {
  52. let $ = cheerio.load(res.text)
  53. let len = $('.article-list .content a').length
  54. if (len > 0) {
  55. console.log(`获取到${len}条博客记录`)
  56. console.log(`开始获取博客地址....`)
  57. for (let i = 0; i < $('.article-list .content a').length; i++) {
  58. let blogItem = {
  59. name: $('.article-list h4').eq(i).text().replace(/\s+/g, ''),
  60. href: $('.article-list .content a').eq(i).attr('href'),
  61. }
  62. getBlogDetail(blogItem)
  63. // blogHrefArr.push(blogItem)
  64. }
  65. n++
  66. if(n<totalPage){
  67. getAllBlogHreef(n)
  68. }else{
  69. return blogHrefArr
  70. }
  71. }
  72. })
  73. }
  74. console.log(getAllBlogHreef(0))

 

cd E:\Main_Pro\FUN\upblog & node shua.js
 

 

文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。

原文链接:fizzz.blog.csdn.net/article/details/90032834

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。