
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 事件却存不了 |