1
Tonyhu 2015-03-03 00:34:08 +08:00
看起来有些复杂啊
|
2
dalaomj 2015-03-03 00:43:34 +08:00 1
看起来用到flash了,模拟浏览器不行。只能分析http请求了。
http://www.douyutv.com/swf_api/room/60651?cdn=&nofan=yes&_t=23755239&sign=f6d076de5dd448a7531b9a8ec43cda3e 里面的 online 就是。 |
3
sumhat 2015-03-03 01:12:15 +08:00 via Android 1
你需要 WebDriver
|
4
txlty 2015-03-03 06:24:01 +08:00 1
请求是flash发出的,phantomjs不支持flash,所以不行。slimerjs可以。
var page = require("webpage").create(); page.viewportSize = { width:1024, height:768 }; page.settings.userAgent = 'Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36'; page.settings.loadImages = true; page.settings.javascriptEnabled = true; page.open("http://www.douyutv.com/60651", function(status){ if (status !== 'success') { console.log('FAIL to load the address'); slimer.exit(); }else { window.setTimeout(function () { var ol_num = page.evaluate(function () { return document.querySelector("#ol_num").innerHTML; }); console.log(ol_num); //在线人数 phantom.exit(); }, 5000); } }) |
5
typcn 2015-03-03 07:17:54 +08:00 1
把那个 swf 反编译了,找出签名算法,然后读取。服务端渲染 flash 简直作死。
Flash 早就卸了,要是其他的可以帮你找一下算法 |