闲来无事爬了下通讯录 试手 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