node. js csdn 블 로그 방문 량

15015 단어 node.js
전단 기술자 로 서 node 를 이용 하여 블 로그 의 방문 을 긁 어 보 는 것 은 지나 치지 않 을 것 입 니 다.
  • npm 패키지 request 를 가 져 와 npm 패키지 로 제공 합 니 다. 간단 한 HTTP 클 라 이언 트 입 니 다. 이 를 통 해 HTTP 요청 을 편리 하 게 실현 할 수 있 고 웹 페이지 를 요청 할 수 있 습 니 다.cherrio 는 dom 구 조 를 분석 하 는 데 사 용 됩 니 다 (Nodejs 버 전의 jquery).
  • const request = require('request')
    const cheerio = require('cheerio')
    
  • 블 로그 데 이 터 를 얻 고 블 로그 주소 기록
  • //     ,               ,        
    let indexPage = 1
    //      + /article/list/ +           
    let url = 'https://blog.csdn.net/weixin_45266125/article/list/' + indexPage
    //       
    request(url, (error, response, body) => {
        if (!error && response.statusCode === 200) {
          	//   html  
            let $ = cheerio.load(body)
            //      
            let allCount = $('#blog_statistics li span').first().text() || 20
            let page = parseInt(allCount) / 20
            let pageStr = page.toString()
            //      
            if (pageStr.indexOf('.') > 0) {
                page = parseInt(pageStr.split('.')[0]) + 1
            }
            //    json  
            let data = {}
            //     
            let articles = []
            data.allPages = page
            data.currentPage = parseInt(indexPage)
            //            .article-list h4 a    ,       
            $('.article-list h4 a').each((ins, el) => {
                let article = {} //        
                $(el).find(".article-type").remove()
                //               
                let text = ($(el).text().replace(/\ +/g,"")).replace(/[\r
    ]/g
    ,"") // let url = ($(el).attr('href').replace(/\ +/g,"")).replace(/[\r
    ]/g
    ,"") // title if (text.length > 20){ text = text.substring(0, 20).concat('...') } article.title = text article.url = url articles.push(article) }) data.articles = articles // , , intervalArticle(articles) } else { // json let data = {} data.msg = ' ' } })
  • 정시 작업 을 설정 하고 블 로그 조회 수 를 무 작위 로 긁 습 니 다
  • let intervalArticle = urls => {
        var count = 0 //      
        var len = urls.length //         
        var co = 0 //       
    
        setInterval(function() {
            count = count + 1
            //     0~len   ,      ,      
            // co = Math.floor(Math.random() * len)
            //       
            request(urls[co].url, function (error, response, body) {
                if (!error && response.statusCode === 200) {
                    // console.log(`   :${count} ,   :${urls[co].title} ,     :${ parseInt((count + len) / len) }`)
                }
            })
            ++co
            if (co === len) {
                co = 0
            }
        }, 60000)
    }
    
  • 상기 파일 을 node 시작 파일 로 가 져 와 서 실행 하면 되 고 서버 에 두 면 됩 니 다 ^ - ^
  • 좋은 웹페이지 즐겨찾기