这两天帮朋友做了个 比价 的小项目,主要是为了练手 Vue 及相关网站开发。

主要功能

  • 批量查询产品对应的京东价格
  • 手动根据京东价格调整批发价格
  • 将产品及价格信息,以网页形式分享出去

由于是私人项目,链接什么的就不放了,主要记录一些技术上的点吧。

前端

前端 方面,自然是 Vue,毕竟最近在学这个。

样式 方面,没有用 CSS 库,纯手工 CSS 代码,毕竟也没什么样式,也是为了练习。

数据 方面,用二层数组实现了品牌(即分组)与产品这二层数据,利用数组的特征支持品牌及分组的排序。另外,支持数据的查改增删。

前期数据纯粹是在浏览器本地存储中。后来,为了实现分享,将数据远程存储在服务器。不过,依然没有引入账户系统,只是本地随机生成一个 ID 作为伪账户,对不同地方上传的数据进行区分(事实上,基本也只是一个人使用)

分享时,会随机生成 ShareID,并与 ID 匹配。通过 ShareID 查看共享页面的用户,并不能直接猜测出 ID,一定程度起到安全(主要是避免有人恶意修改数据,毕竟没有账户系统)

目前,只支持在固定电脑编辑固定伪账户 ID 的数据,可通过备份与导入的方式,在不同电脑间切换。毕竟,对个人使用,这也足够了。

交互 方面,没什么可说的,都是很基础的东西。其中,对于频繁操作的修改价格,支持双击修改、回车确定等提高效率的操作,毕竟我是做工具软件出身的,有这个习惯。

后端

有 2 个原因,使得这个小小的项目,需要后端支持:

  • 由于跨域的问题,前端无法直接查询京东价格,只能借助后端查询
  • 由于需要共享,必须云端存储数据,前端获取并展示

说起查询京东价格,主要是通过网上找到的 p.3.cn 这个第三方 API 实现。这种类似黑盒的 API,个人用用还好,作为商业使用可能就不合适了。期间,还了解了 慢慢买 的 API,他们并不公开价格,邮件销售提到的价格是 1000 每月,显然并不适合。

为什么不使用京东官方 API?因为好像个人无法申请到「所谓开放」的服务,也就无法使用。毕竟,价格是电商核心的东西,没有平台会这么轻易地开放。

另外,点击京东价格,可以跳转至京东官网查看对应产品的详情。这里又有个坑:京东联盟。我本以为,可以根据京东联盟 ID,轻易地拼出对应的链接,没想到有个 utm_term 好像是根据算法生成的 md5,无法直接伪造(不知道出发点是什么,提高转链难度?)没办法,只能通过抓包官方平台创建链接的操作,逆向出接口,用于代码生成链接。

Chrome 插件

前面提到的京东联盟链接,其中核心是 获取 Cookie,这方面是 Chrome 插件,24 * 7 运行在服务器端,通过定期刷新页面保持 Cookie 有效,并将 Cookie 上传至后端服务器,用以生成京东联盟链接。

尾巴

刚开始以为只是个纯前端的小项目,没想到拔出萝卜带出泥,整这么大动静。从维护的角度,这个项目最大的不确定性有两个:

  • p.3.cn 这个第三方价格获取接口
  • Chrome 插件能否长期稳定地工作

博客原文:0301 - 一个比价的小项目

0301 - 一个比价的小项目相关推荐

  1. c语言为什么要建项目,一个C语言小项目为什么都说牛逼

    原标题:一个C语言小项目为什么都说牛逼 意在鼓励C语言学者.更有兴趣,学习更富有创业和乐趣! 推荐加学习交流群:658807522 可以在一起学习交流,既是参赛选手,又是学者,也可以先学习再参赛,反正 ...

  2. 手把手教你完成一个数据科学小项目(7):经纬度获取与BDP可视化

    前言 请先阅读"中国年轻人正带领国家走向危机",这锅背是不背? 一文,以对"手把手教你完成一个数据科学小项目"系列有个全局性的了解. 本系列代码统一开源在Git ...

  3. 昨天找的一个地推小项目,58推客

    昨天找的一个地推小项目,58推客,分享给大家. 赚点零花钱还可以,赚大钱是不可能的了. 有人卖这个信息差要60块钱,不过一律要交钱的,我都直接当骗子处理. 毕竟我是受过教训的. 今天尝试跑了几家,基本 ...

  4. 手把手教你完成一个数据科学小项目(9):情感分析与词云

    前言 请先阅读"中国年轻人正带领国家走向危机",这锅背是不背? 一文,以对"手把手教你完成一个数据科学小项目"系列有个全局性的了解. 本系列代码统一开源在Git ...

  5. 【React】做一个百万答题小项目

    因为这个小项目是按照开源项目实现的,所以只了解React和Redux实现方式就好,相关的引入框架和后台数据库相关暂时先不解释.(主要是没时间了,肝deadline...) 文章目录 1.安装框架和依赖 ...

  6. 如何利用spring框架来开发一个简单的小项目——书店项目

    这里我将用spring来开发一个简单的书店项目 Step1:所用到的开发软件为 idea , 所用到的jar包为 这些jar的下载可在 官网 下载,选择5.2.6版本下载,不会的在下面评论私信 Ste ...

  7. 基于java GUI实现的一个日历记事本小项目

    最近刚学了gui部分的内容,练手和两个同学一起做了一个小日历,第一次做没啥经验,代码多多少少有点不规范的,各位见谅,下面浅浅讲一下思路. 代码已给出了每段比较详细的注释,整体分FirstFrame和M ...

  8. python单词统计、给定一个段落()_自己动手Python写一个词频统计小项目

    这里用python做一个小小的英文词频的统计.当然了,自己写的,就没有停词.计算词语权重这些功能了,纯粹是写写代码练练手. 首先呢,这里是一篇英文文章,就像下面这样的185个小段落,数据量还是不大的, ...

  9. 跟我一起做一个vue的小项目(十一)

    接下来我们进行的是详情页动态路由及banner布局 先看页面的效果 下面是代码部分 <template><div><div class="banner" ...

最新文章

  1. FPGA设计——图像处理(Sobel边缘检测)
  2. python学习手册条件-Python学习手册之控制结构(一)
  3. WPF 4 日历控件(Calendar)
  4. 【Python】在模仿中精进数据可视化09:近期基金涨幅排行可视化
  5. 排序算法-05简单选择排序(python实现)
  6. ibatise 没有大于等于吗_库里+杜兰特并没有大于等于2!或许他和库里搭配将更强...
  7. MATLAB判断矩阵相等
  8. 更名OpenShift容器平台,红帽实现战略性转变
  9. 关系抽取---(三)基于文本的卷积神经网络(Text-CNN)的关系抽取
  10. Android推送方案分析(MQTT/XMPP/GCM)
  11. 电视盒子_刷机固件_免费合集分享
  12. 音视频基本概念:分辨率、帧速率、码流、采样位深、采样率、比特率
  13. WIN10系统重新安装与初始化教程
  14. 推荐一款安卓手机一键Root工具
  15. 【Vue知识点- No5.】生命周期、axios、购物车案例
  16. python爬取qq音乐歌词风变编程_风变编程的Python课,让我离掌握编程又进了一步...
  17. 基于重构误差的同构图分类模型
  18. 在线教育项目02_前端知识(es6、vue)
  19. 视频号容易被限流的8个雷区,这些规则你一定要知道!
  20. ubuntu16.04为chrome浏览器安装flash插件(Adobe flash play不是最新版本)

热门文章

  1. RHEL4- DNS服务(四)DNS的开机自动启动控制
  2. 【性能优化】 之10046 事件
  3. Android数据绑定框架DataBinding用法
  4. Linux性能分析—CPU篇
  5. InnoDB中一棵B+树能存多少行数据
  6. 性能测试—接口压测指标分析
  7. docker中创建MySQL及在外部使用Navicat连接
  8. (七)Docker网络配置
  9. Java 语法糖详解
  10. 2019-1-15 课后作业