这不是一篇广告贴!

这不是一篇广告贴!

这不是一篇广告贴!

重要的事情说三遍!!!

前不久的一个周末,和一对好友夫妇聚餐,期间我媳妇被安利一款包,叫Freitag。

Freitag来自于瑞士,是最早推出的环保袋包,使用各式各样色彩缤纷的回收卡车用帆布。

我从网上找来几张关于Freitag的照片,大家随意感受一下。

作为包盲的我,在这次聚餐过程中,展现了对Freitag的极大的兴趣,因为当我听到我朋友吐槽说,Freitag官网的上新没有推送,导致经常抢不到喜欢的新品。于是我程序员模式上线,成功将话题带偏。

那么,今天就聊一聊,如何使用MATLAB制作Freitag网站的上新推送。

整个功能的实现过程,包括三个环节:

1) 数据的爬取

2) 数据的比较

3) 数据的发送

事实上,这三个环节的技术细节,我在之前的帖子中都已有涉及。总的来说,网站推送功能的实现,仅仅只是把以前零碎的技术积累,重新组合输出的一个过程。有兴趣的朋友,同样可以利用Freitag官网,其他的购物网站,或者是求职网站进行练习。

数据的爬取

在进行数据爬取之前,需要完成的是,对Freitag官网有一个初步的了解,以及后续工作过程中数据结构的定义。

Freitag官网中,Bag的领域下,有八大类,分别是:

1) Messenger

3) Shoulder Bags

4) Backpacks

5) Laptop Bags

6) Tote Bags

7) Sports Bags

8) Travel Bags

而每一类中又分别有不同款式的包,以Messenger为例,该类别下存在8款包,分别是:

1) F153 JAMIE

2) F41 HAWAII FIVE-O

3) F42 SURFSIDE 6

4) F11 LASSIE

5) F14 DEXTER

6) F12 DRAGNET

7) F13 TOP CAT

贴完上面这八张图,我发现我的包盲症,又更严重了。。。

细心的朋友,可能会发现,每款包的价格也显示其中,不过单位是瑞士法郎的价格。这里我有一个不成熟的小建议,可以爬取当日的瑞士法郎银联汇率,转换为人民币价格。

在了解了Freitag产品架构之后,下一步就是定义后续数据分析过程中的数据结构了,而数据结构取决了数据分析策略,以及希望结果以何种形式呈现。

以今天下午我收到的Freitag上新邮件提醒为例,其中包含的信息包括几大要素:

1) 什么时候更新的

2) 哪款包更新了

3) 更新的这款包属于哪类颜色

4) 什么价位

5) 这款包更新前一共有几个样式

6) 这款包更新后一共有几个样式

7) 这款包的网址

同时,这封推送邮件的标题同样也是以时间为导向定义的。

那么,根据最终消息推送的需求逆向推导,最终我所定义的数据结构如下,自左向右所在列信息依次为:

2) 当前样式数量

4) 人民币价格

5) 类别名称

6) 款式代号

至此,爬虫功能介绍完毕,这部分的代码将会单独作为一个function,每隔一段时间进行调用,获取当前最新的数据。

数据的比较与发送

数据的比较与发送,这两部分,较爬虫部分而言,相对比较容易。

数据的比较是以网址为导向,将同一个网址所对应的包,爬虫前后的样式数量进行对比。如果爬虫后的数量要高于前一次爬虫所得的数量,或者这次所爬取的网址在之前的爬虫过程中并没有出现过,那么就认为该款式的包出现更新。

更新的结果除了之后要通过邮件发送出去之外,还需要录入Excel作为数据库备份,可以方便今后的数据追述。

而更新数据的邮件发送,这项功能由于在之前的帖子中被反复提及,将不再赘述,附上邮件发送的代码。

function EmailSend(E_Title,E_Content)    Mail = ''; %邮箱地址    password = 'xxx';  %邮箱密码    setpref('Internet','E_mail',Mail);    setpref('Internet','SMTP_Server','smtp.163.com');    setpref('Internet','SMTP_Username',Mail);    setpref('Internet','SMTP_Password',password);    props = java.lang.System.getProperties;    props.setProperty('mail.smtp.auth','true');    sendmail('dpq_engineer@126.com',E_Title,E_Content)end

虽然整篇下来看似是一篇无趣的帖子,不过购物网站推送确实是一个富有趣味的命题。很遗憾,我把一个有趣的事讲砸了。

不过,朋友们,相信我,这个程序写起来很有意思,有机会一定要尝试。

最后,祝大家新的一周,工作愉快。

打浦桥程序员

汽车行业的工程师

更喜欢用MATLAB看世界

更多联系方式

❶ 知乎:打浦桥程序员

❷ 知乎专栏:MATLAB如何