Rails 使用 Rails 制作了一个任天堂 Switch 价格追踪网站

FinnG · 2022年07月25日 · 最后由 Ruhi02 回复于 2024年04月22日 · 1580 次阅读

上个月做的Steam 价格追踪, 这次又花了几周的时间把 Switch 的价格追踪也做了。

相较于 Steam 的折扣追踪,Switch 这边用了Shrine做的文件存储 (主要是游戏主图的 variants) 和图片处理,相较于 Active Storage, Shrine 更灵活,更可定制,比如可以做出像/ns_apps/1/image/small-w320.webp这种漂亮的文件 URL.

用了pagy做分页,比之前的 Kaminari 快了,尤其是没有多次查 COUNT.

任天堂的区分的比较散,不像 Steam 那种可以有直接的 API, 需要 nokogiri 简单爬/解析一下内容,提取出 CODE 之后才能 API 查价,写爬虫和各个市场区交叉索引比较让人崩溃。

由于网站内容比较简单,几乎没有写任何 JS, 即是是单个游戏的历史价格折线图,也是用了chartkick gem, 如果没理解错,它里面实际上包了一个chart.js.

网址在这 , 还欠缺许多功能比如愿望单和打折提醒之类的,喜欢打游戏的 Rails 开发者欢迎提建议

crazyjacky 回复

Hey 谢谢!受了你的 Immigration 站很大启发😁

FinnG 回复

互相学习。我对于 UI/UX 理解很少,所以样式和交互体验做的不好。

crazyjacky 回复

正经的信息网站,做的太花哨反而会让大伙觉得是假的,我感觉你做的就挺好的😄 (有一个小小的建议导航栏按钮.nav-item .active 有 border radius, 但是按钮 hover 的时候非.active 没有圆角,感觉可以加一下)

FinnG 回复

谢谢提醒,回头去改一下。

FinnG 回复

求 Immigration 网站看看,没搜到。

BenX 回复

@crazyjacky 是作者 我帮你 at 他啦

8 楼 已删除

您好 请教下 港服数据都是哪里来的呢? 不太想抓包 https://eshop-prices.com/

GitHub 上这个没港服的数据也 https://gist.github.com/Shy07/822eff655ec8da2717f269bc21c65976

dushandz 回复

https://store.nintendo.com.hk/games/all-released-games?product_list_order=release_date_asc

港服只能找到它官网卖激活码的那种,然后挨个爬,解析 HTML, 找到 CODE.

港服那些其他的在 NS 上可以直接购买的小游戏没有找到好办法,你看我的港服 Store 也是只有 500 多个游戏

FinnG 回复

好的 感谢回复 感觉是免不了爬了···· 查价的 API 倒是可以用

之前也做类似的,但是后来 API 经常变化,就没怎么维护了(

https://github.com/Dounx/NintendoSwitchEShopHelper

https://github.com/Dounx/gwitch

Dounx 回复

是大佬,我当时没有搜到您做的 Gem

我做了 Steam 的和 Nintendo 的,感觉就是 Steam 的各个区很统一,各种 API 也很统一,但 Nintendo 就分了好多好多区,每个区都不一样,还总变,有些是从 HTML 里面找的某个 div id 拿到 CODE 去查询价格,一旦网页改了,查 CODE 的代码就得重写。像港区还有韩国区都不知道怎么弄,美区也是从 Algolia 的数据搜索里面一点点导出来

需要 登录 后方可回复, 如果你还没有账号请 注册新账号