xivinChen / zhi-de-ma

价格记录项目

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

值得吗 价格记录 网站简介

通过次开源项目,你可以掌握springcloud 微服务开发,包括 nacos注册中心、提供者、消费者、feign等,除此外,本分布式网站还多处涉及爬虫技术,你同时可以掌握基于java的爬虫技术。

1.背景及目的

电子商务兴起,各大平台竞争日益强化,如双十一、双十二、六一八等购物节纷纷推出一系列的购物活动,但活动价格跟平时价格是否真的很划算?相信没看到数据的我们都怀疑。于是,货比今昔就由此诞生了,我们这款产品就是为了共同记录商品价格而生。为何说共同的呢?这种**源于区块链——共同维护一个账本。对于淘宝、京东等电子商品平台商品有上亿个,就算淘宝给我提供这么商品信息,我们也不可能开销如此大的空间保存这些数据。所以,我们的想法是只记录有查询过的商品,并且每当有重复查询时都更新价格,当然也会分批查询,如没3天查询一次价格变化,降低服务器的压力。

2.项目发展前景

通过共同记录价格,共同参与区块链写账本,吸引用户流量,用户记录越多,商品数据就越完善。有了用户,就可以接入广告商,我们这个项目天然可以接入很多网店的广告。另一方面,对于小的电商平台想在我们平台记录价格,需要定时交入驻费。第三、我们可以帮助商家收录商品收取收录一定的费用

3.涉及技术

SpringCloud全家桶,java爬虫技术。

4.模块

zhidema-provider 提供者模块

zhidema-service feign请求客户端

zhidema-consumer 消费者及前端页面

zhidema-api 实体

5.功能

第一个版本完成了对 天猫、淘宝、京东三个平台的商品详情爬取,此版本目前只能爬取商品的标题和id,价格和规格等信息由于是延迟加载还不能爬取,下个版本将迭代此功能,利用selectnium把全部商品信息爬取出来。

6.核心代码介绍

1) url区分

商品url识别,首先区分平台。对于天猫淘宝则先通过 "?"把根路径和参数切开,再通过 "&" 切开, 最后获取 以 id=开头的参数就是商品id了(唯一考虑的是id的位数是不定的,所以不能通过剪取多少位来实现)。对于京东,则比较简单,具体参考代码!


2) 商品详情爬取

关于爬虫的实现代码在 provider模块的SoupServiceImpl中,这块代码也很好理解,先创建HttpClient,设置请求头,执行请求,对相应的内容进行解析,最后获取内容。

7.项目部署

1) 先启动nacos注册中心,没有用过的同学可以查一下这个注册中心,是阿里的一款产品,安装使用都很容易上手。


2)创建数据库表,数据库脚本在provider的resources下。


3)分别启动zhidema-provider 的ProductApp 和 zhidema-consumer的ConsumerApp启动类,可不分先后顺序。


4)浏览器访问 localhost:5000/ 可进入首页,复制一个商品url即可测试。


7.docker启动

进入docker文件夹,输入 docker-compose up 即可启动两个工程,但数据库和注册中心要手动创建和手动启动,window系统需要修改 maven仓库路径

About

价格记录项目


Languages

Language:Java 81.4%Language:HTML 15.2%Language:PLpgSQL 2.9%Language:CSS 0.6%