一个比价系统的构建

栏目: 数据库 · 发布时间: 6年前

内容简介:一个比价系统的构建

在毕设答辩前后,终于可以说说我的毕设内容了。

首先,我做的实际上是一个比价系统,当然,是那种没有用任何 API 的系统。

换言之,我们要做的事情就是从爬虫开始收集数据,处理数据并且通过搜索展示,其中我的论文题目是「数据融合的研究以及应用」,也就是说需要对同样的商品进行聚合(融合)操作。

这篇文章大致提供一个思路,具体的代码因为写的太辣鸡就不开源了。

爬虫

首先就要从爬虫做起了,作为一个爬虫的萌新,要爬电商网站需要遇到的问题:

  • 如何连续不断,或者说可以状态恢复
  • 如何应付反爬
  • 对于客户端渲染的网站如何处理

综合以上考虑(虽然其实考虑的是第三点),决定使用 Selenium 爬取,过去往往配合 Phantomjs,而现在我们可以愉快的使用 Chrome Headless 了。

即使不选择 Selenium 这类库渲染,当然也不是完全没有办法,比如说移动版可能就会做一些服务端渲染;或者直接去分析和请求 API 接口等等,方法可以有很多。

当然作为一个懒人,懒得进行那么多人肉分析和处理,所以直接用 Selenium 开撸。

对于每个电商网站都有分类的部分,可以从分类开始一页一页爬,也就是说如果要爬全站的话,实际上深度为 3 级就能搞定了。对于这三个步骤而言是统一的,各步骤可以单独写一个程序,各个步骤之间通过中间件或者数据库联系可以做到完全独立,互不干扰,也有助于直接部署到多台机器上。

对于一般的 Python 爬虫分布式,似乎通常都是用 Redis 去做的。

这样其实也就给了每一条数据一个状态,提出的问题 1 也就解决了。

问题 2 是个比较麻烦的问题,主流的做法依旧是:

  1. 减速
  2. 代理 IP 池
  3. 模拟操作

不过,这里不得不吐槽,除了一点 Cookie 上的验证之外,由于 Selenium + Driver 的组合实在略慢,加上我需要的实验数据量比较小,根本没有遇到需要反爬的问题……

融合

融合在这里根据引言部分其实被转换为了一个实体识别的问题,我们在这里假定:「品牌」、「型号」与「颜色」信息一致的为同一商品,考虑到复杂性,实际上我们只需要一个 Title 信息,对 Title 进行处理,对于其他数据则作为展示用可以选择性采集。

「品牌」我们可以直接通过品类的列表获取,进行一些处理和合并操作就可以得到一个完整的「品牌」别名列表,当然,还有一些其他的做法,比如说寻找同义词典,在一个特殊的应用环境下没必要这么做。

对 Title 进行的第一个处理就是去除商品 Title 中的所有品牌信息,贪婪匹配删除一波之后留下的就是包括了「颜色」、「型号」等信息。

先从颜色入手,我们建立了一张「颜色色系表」,不需要特别全,最后一个关键词为「色」,应该可以匹配一些流氓颜色名了。

分词操作,可以使用结巴分词,然后匹配到颜色同样在字符串中剔除这一部分。

最后找到型号,我们可以假定型号在品牌之后,剔除后也就是首个,结束。

于是我们得到了一个特征序列,根据这一特征序列就可以确定是否为同一实体。当然,之后我想到,这其实和机器学习的思路是一致的,但这个问题肯定是一个监督学习问题,实在懒得标注训练集和测试集,所以……如果把特征值处理为特征向量可以进行一些其他的操作,或者说 Title 本身就可以通过训练做一些操作,不过那是后话。

搜索与界面

搜索当然是选择 ElasticSearch 拉。

我们把融合处理后的结果丢进了 MongoDB,之后使用 mongo-connector 同步,关于这个还写了一个文章吐槽: 使用 mongo-connector 同步 MongoDB 数据库到 ElasticSearch 。

同步完成之后,搜索到的打分最高的项特征值去匹配数据库,就能得到我们的「融合结果」了。

结束

很惭愧,一点微小的吐槽,其实并没有什么卵用。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大数据经济

大数据经济

谢文 / 北京联合出版公司·后浪出版公司 / 2016-1 / 32.00元

中国互联网数朝元老、中国的“凯文·凯利”首度深度剖析大数据的大机会 大数据纳入中国国家行动方略,大数据产业起飞在即 陈彤、胡舒立、王巍鼎力推荐 ................... ※编辑推荐※ ★ 雅虎中国前总裁、中国互联网第一预言家——谢文,首部大数据力作。本书作者是中国互联网业第一代创业者,历任和讯网总裁、雅虎中国总裁、一起网CEO,亲身经历中国互联网发展全过......一起来看看 《大数据经济》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具