闲来无事爬了下通讯录 试手 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('\n');
    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('\n 入职:' + 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('\n  离职:' + quits)
        }
        fs.writeFile('./userlist.json' , JSON.stringify(userlist ,null , 4) )
        process.stdout.write('\nend');
      }
    )
})

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

转载于:https://www.cnblogs.com/vaal-water/p/3811746.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值