通过次开源项目,你可以掌握springcloud 微服务开发,包括 nacos注册中心、提供者、消费者、feign等,除此外,本分布式网站还多处涉及爬虫技术,你同时可以掌握基于java的爬虫技术。
电子商务兴起,各大平台竞争日益强化,如双十一、双十二、六一八等购物节纷纷推出一系列的购物活动,但活动价格跟平时价格是否真的很划算?相信没看到数据的我们都怀疑。于是,货比今昔就由此诞生了,我们这款产品就是为了共同记录商品价格而生。为何说共同的呢?这种思想源于区块链——共同维护一个账本。对于淘宝、京东等电子商品平台商品有上亿个,就算淘宝给我提供这么商品信息,我们也不可能开销如此大的空间保存这些数据。所以,我们的想法是只记录有查询过的商品,并且每当有重复查询时都更新价格,当然也会分批查询,如没3天查询一次价格变化,降低服务器的压力。
通过共同记录价格,共同参与区块链写账本,吸引用户流量,用户记录越多,商品数据就越完善。有了用户,就可以接入广告商,我们这个项目天然可以接入很多网店的广告。另一方面,对于小的电商平台想在我们平台记录价格,需要定时交入驻费。第三、我们可以帮助商家收录商品收取收录一定的费用
SpringCloud全家桶,java爬虫技术。
zhidema-provider 提供者模块
zhidema-service feign请求客户端
zhidema-consumer 消费者及前端页面
zhidema-api 实体
第一个版本完成了对 天猫、淘宝、京东三个平台的商品详情爬取,此版本目前只能爬取商品的标题和id,价格和规格等信息由于是延迟加载还不能爬取,下个版本将迭代此功能,利用selectnium把全部商品信息爬取出来。
商品url识别,首先区分平台。对于天猫淘宝则先通过 "?"把根路径和参数切开,再通过 "&" 切开, 最后获取 以 id=开头的参数就是商品id了(唯一考虑的是id的位数是不定的,所以不能通过剪取多少位来实现)。对于京东,则比较简单,具体参考代码!
关于爬虫的实现代码在 provider模块的SoupServiceImpl中,这块代码也很好理解,先创建HttpClient,设置请求头,执行请求,对相应的内容进行解析,最后获取内容。
进入docker文件夹,输入 docker-compose up 即可启动两个工程,但数据库和注册中心要手动创建和手动启动,window系统需要修改 maven仓库路径