当前位置: 首页 > news >正文

一个爬电商数据并实现搜索的例子

这是一个抓取电商商品信息,并提供搜索接口的例子。

采用的技术:

代码管理github

持续集成gradle

web框架rose3.0(基于Spring3.0)

数据库mysql

商品抓取id遍历,Jsoup解析网页

搜索lucene


现在的接口:

抓取数据:http://localhost/spider,把易迅的数据抓取下来,只抓一万个左右,放在数据库中
生成索引:http://localhost/index,把数据库中的数据用lucene来做索引
搜索结果:http://localhost/search?keyword=midea&begin=0&count=20&cate=饮水机&minPrice=100.1&maxPrice=2000
必填:keyword 是关键字,对名称和描述有用,begin和count是对结果翻页
选填:cate是分类,也是用lucene做的索引,还有就是价格区间的选择
搜索建议:http://localhost/suggest?begin=0&count=100&keyword=meiru

是对名称做了最前匹配,包括名称的拼音和首字母
查看所有数据:http://localhost/list?beginId=1&count=100beginId:开始的id,count:数量


现在的电商中,京东和易迅id是顺序的,amazon和当当的id是hash的,所以我的这个demo只能抓京东和易迅的数据。但是京东的价格不是直接展示在页面上,而是通过js单独发请求得到的,比较麻烦,第一版demo暂时只能抓取易迅的数据。

搜索分搜索建议和搜索结果,搜索建议是把商品名称做了汉子,汉子转换成全拼及首字母的前缀匹配;搜索结果是对商品名称和描述做了全文索引。

github地址https://github.com/LiuGangR/SpiderAndSearchDemo

gradle很好用,不会自己学学

有建议欢迎讨论


相关文章:

  • Qt5学习之路(VS下Qt设计师文件的使用)2013-10-13
  • 使用shell关闭占用某一个端口的程序
  • CGlib的动态代理使用示例
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (4)事件处理——(7)简单事件(Simple events)
  • 把编程语言比喻为人体
  • Qt5学习之路(vs2012下创建一个QT应用程序)2013-10-14
  • 说说我在家乡山东日照的面试经历以及对家乡互联网产业的一些认识吧
  • mysql实现随机查询
  • SICP 习题 (1.15) 解题总结
  • 编码规范之美.佛语释道
  • 小智慧63
  • 自己写Lucene分词器原理篇——CJKAnalyzer简单讲解
  • 如何建立基于CocoaPods的ReactiveCocoa工程
  • Webservice-XML与Java(五)
  • 2017届校招提前批面试回顾
  • ECS应用管理最佳实践
  • input的行数自动增减
  • JavaScript新鲜事·第5期
  • js继承的实现方法
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Python3爬取英雄联盟英雄皮肤大图
  • React-Native - 收藏集 - 掘金
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 反思总结然后整装待发
  • 记一次用 NodeJs 实现模拟登录的思路
  • 精彩代码 vue.js
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 前嗅ForeSpider采集配置界面介绍
  • 区块链共识机制优缺点对比都是什么
  • 算法系列——算法入门之递归分而治之思想的实现
  • 提醒我喝水chrome插件开发指南
  • 微信小程序开发问题汇总
  • 我建了一个叫Hello World的项目
  • 一份游戏开发学习路线
  • 硬币翻转问题,区间操作
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 再谈express与koa的对比
  • C# - 为值类型重定义相等性
  • gunicorn工作原理
  • Mac 上flink的安装与启动
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • #、%和$符号在OGNL表达式中经常出现
  • #etcd#安装时出错
  • (floyd+补集) poj 3275
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (二)JAVA使用POI操作excel
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (三)uboot源码分析
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)大型网站架构演变和知识体系