最近跟同事聊天,他突然把我拉去搞一个水果比价的项目。你知道的,每次遇到这样的活,我都要花四五个小时去手敲Excel表格,累得要死。我就想了,能不能搞个App,给同事自动比价呢?我在网上搜了一圈,居然没找到现成的工具,于是我就把这个想法付诸行动了。 我把整个流程分成了三部分:爬虫、清洗数据还有可视化报告。爬虫的任务就是用requests库把网页上的信息扒下来,然后存到本地。清洗数据这块儿主要是给商品信息做个“SPA”,把乱七八糟的名称和单位都统一一下。最后用pyecharts把结果做成图表,看起来直观多了。 不过这次遇到的困难不少。比如,每个平台给水果起的名字五花八门,同样是苹果,有的叫红富士,有的就直接叫苹果。还有重量单位也是乱得一塌糊涂,500g、0.5kg、斤什么都有。为了解决这个问题,我先用正则表达式把名称和单位分开处理,然后用Python的nltk库训练了一个模型来匹配商品。这个模型准确率差不多有90%。 这次测试下来效果还不错。比如左边是平台A的清单,右边是平台B的清单,中间用绿色箭头标出同款商品。虽然还在PPT阶段,不过看起来已经挺直观了。整个过程从启动到生成报告也就60秒左右。 我花了30个小时才搞定这一套流程。前三天主要在跟requests库较劲,后来又花了好几个小时写正则表达式。后来还用nltk库训练字符顺序模型,把识别率从75%拉到了90%。剩下的时间主要是做可视化和打包成可执行文件。 以前做一次市调至少得4个小时才能出结果,现在用这个工具只要60秒。一个月做两次市调就能省下120小时。别小看这几个小时的时间差,一年下来就是1440小时,相当于又做了好几个项目。 虽然现在爬虫还得人工补抓一下数据,报表也只能导出静态图片,但整个流程已经跑通了。接下来计划把爬虫改成多线程并发加快速度,把清洗模型放到云服务器上实现云端比价。总之只要能节省时间就行。毕竟在生鲜市场上谁先节省时间谁就能抢占先机。这就是我这次做自动化工具的全部意义所在。