1
jarlyyn 2017-07-18 09:20:01 +08:00 via Android
首先,你需要的是反向代理。其次,编译 Apache 也是闲的蛋疼,有这功夫不如上 nginx。
|
7
timwei 2017-07-18 12:33:27 +08:00
激战 2 好游系呀
要不试试本地起个 node,常驻去 gw2armory 爬取数据后放 redis/memcached。 自己的服务就只需要从本地的数据库拉取数据 |
8
jarlyyn 2017-07-18 12:46:41 +08:00
|
9
firsthym OP @timwei 我很喜欢这个游戏!谢谢你的建议。你的意思是,搭一个 Nodejs 服务器,然后去爬 gw2armory 的数据吗? nodejs 没有玩过,但它也是去官方 API 抓取数据哦。gw2armory 是一个开源项目,但是我没研究过,看不大懂。。
|
10
firsthym OP @jarlyyn 有没有服务器端模拟浏览器的 mod?你说的原始地址转换,是不是可以通过 rewrite mod 来实现呢?
|
12
firsthym OP 难道这种靠 js 来渲染出的页面就没有办法缓存吗?有没有什么浏览器容器跑在 server 上的?或者 nodejs server 可以执行出 html 输出页面吗?
|
13
timwei 2017-07-18 15:48:17 +08:00
我做完 Predator 就退坑了,之后 Rifle Warrior 好像就砍刀了哈
--- 看了下你的站,接这库多用在表示 build 中的游戏装备数据。 要不自己接官方 Wiki API 储存下会用到的数据? |
14
firsthym OP 通过 node.js 似乎找到了一个解决方案,phantomjs ?
|
15
timwei 2017-07-18 16:19:31 +08:00
phantomJS/Selenium 等模拟浏览器的方案,应该是无法。
毕竟只能存下渲染后的 html 但是 js 绑定的事件并没有办法 |
16
timwei 2017-07-18 16:24:05 +08:00
举个栗
拿 phantom 渲染 <div class="gw2-slot" data-armory-embed="items" data-armory-ids="24702"></div> 的确会跑出: <div class="gw2-slot" data-armory-ids="24702"> <div data-reactroot="" class="ky25a gw2a-items-embed"> <div class="_2iSAg _2s9vh _2fMTs _8i8np _2TpFq"> <div class="_2iSAg _2s9vh d0pLi" style="background-image: url("https://render.guildwars2.com/file/FEF77764F24C0548271F29337268970C092DA5D3/220717.png");"> </div> </div> </div> </div> 可是这元素绑的 mouseover 事件却存不了 |