zoukankan      html  css  js  c++  java
  • 闲来无事爬了下通讯录 试手 jsdom

    curl http://xxx.com/address/addresslist?search=%40 --cookie oa_cookie=123  -s| node parss
    .js
    

      

    js 代码

    var jsdom = require('jsdom')
        ,fs = require('fs')
    process.stdin.setEncoding('utf8');
    
    var html = ''
    process.stdin.on('readable', function() {
        var chunk = process.stdin.read();
        if (chunk !== null) html += chunk
    });
    var userlist = require('./userlist.json')
        ,userHash = JSON.parse(JSON.stringify(userlist) )
    
    process.stdin.on('end', function() {
    
        process.stdout.write('
    ');
        jsdom.env(html,
          function (errors, window) {
            var list = []
            var l = window.document.querySelectorAll('#userlist tr')
            for (var i = 0 ; i < l.length ;i ++ ){
                var li = l[i].getElementsByTagName('td')
                if (!li || li.length < 8) continue
                var user_id = li[0].textContent
                var user = {
                    "name" : li[2].textContent
                    , "dep" : li[4].textContent
                    , "email" : li[3].textContent
                    , "phone" : li[6].textContent
                    , "qq" : li[7].textContent.trim()
                    }
                if (user_id in userlist ) {
                    delete userHash[user_id]
                    continue
                }
                user.join = +new Date()
                userlist[user_id] = user
                process.stdout.write('
     入职:' + JSON.stringify(user))
    
            }
            var quits = JSON.stringify(userHash)
            if ('{}' != quits)    {
                var leaves = quires('./leaves.json')
                for (var id in userHash){
                    leaves[id] = userHash[id]
                    }
                fs.writeFile('./leaves.json' , JSON.stringify(leaves ,null , 4) )
                process.stdout.write('
      离职:' + quits)
            }
            fs.writeFile('./userlist.json' , JSON.stringify(userlist ,null , 4) )
            process.stdout.write('
    end');
          }
        )
    })

    jsdom 官网 https://github.com/tmpvar/jsdom

  • 相关阅读:
    控件视图的实现原理
    建造者模式
    leetcode701
    leetcode991
    leetcode990
    leetcode989
    leetcode988
    leetcode987
    leetcode986
    leetcode985
  • 原文地址:https://www.cnblogs.com/vaal-water/p/3811746.html
Copyright © 2011-2022 走看看