资讯专栏INFORMATION COLUMN

004-综合应用-《美食趋势》

Codeing_ls / 1981人阅读

摘要:综合应用美食趋势前言最近事情比较多,一直没找出时间继续写东西,抱歉。通过图片抓取获取美食资源,然后美食信息进行展示和数据分析。引用依赖配置定时注解。引用依赖已经把的依赖包含了。

综合应用-《美食趋势》 前言

最近事情比较多,一直没找出时间继续写东西,抱歉。
后面准备综合前面的东西写一个小应用。通过图片抓取获取美食资源,然后美食信息进行展示和数据分析。

需求功能整理

小吕最近胃口不好,吃啥啥不香,日益消瘦。小貂看在眼里,疼在心里,甚至怀疑是不是自己的饭已经被吃够了,甚是伤心。一天她把自己的担忧跟小诸葛说了,小诸葛轻轻摇扇说,这个好办,我们蜀氏集团出个菜谱,只要按照这个菜谱高的做,保准你家小吕吃的开心。
小诸葛回到公司后,把情况给大家说,理出一个大概的思路:小吕不爱吃饭-->小貂做的不好吃-->小貂不知道做啥好吃-->蜀氏集团能否提供美食参考?美食参考需要怎么做才能达到目的?大家讨论后,一致同意先出一个雏形,讨论雏形结果如下

数据设计

数据结构

功能实现 1. 定时抓取数据

小赵接手定时任务计划,他决定采用spring-task,就像把大象放到冰箱一样简单。引用依赖-->配置spring task--> 定时注解。
a. 引用依赖spring-webmvc已经把task的依赖包含了。只引用下一下个即可

...
        
            org.springframework
            spring-webmvc
        
...

b. 配置spring,注意xml一定要声明task


    ... 
    
        
                       
    ...
    
     
     
    ...

c. 定时注解,定时表达式采用cron表达式

package org.sl.food.task;
...
@Component
public class FoodCrawlTask {
@Scheduled(cron = "0/5 * *  * * ?")
    public void foodCrawl() {
        ...
    }
    ...
}

现在乍听特别高大上的定时任务功能就这么完成了,只要定时去获取数据就行啦,剩下的交给别人吧。

2. 解析数据入库

小张表面看着满脸横肉,胡子比头发还长。怎么看都感觉是个大大咧咧,易燃易爆品。正是这人,非想做需要细心,耐心的活;想改变人们对他的看法。怎么做呢,怎么把浏览器看到的数据转换成固定结构的数据呢?首先需要有数据,这个小赵已经完成;其次需要解析数据,jsoup,专门解析html数据,这个算是解决;剩下的对应数据了,id,name,菜谱地址,图片……这么多,关键小赵给的数据,还不能完全满足,需要额外的数据,这可咋整,但是小张不能急!!!怎么能快速的取到我想要的值呢?浏览器可以用jQuery,什么?jsoup支持jQuery语法?!。

...
        Elements el = doc.select("#listtyle1_list .listtyle1 a.big");
        logger.debug("{}", el);
        List foodList = new LinkedList<>();
        for (Element e : el) {
            FoodEntity food = new FoodEntity();
            food.setUpdateTime(new Date());
            food.setName(e.attr("title"));
            food.setDetailsSite(e.attr("href"));
            food.setPicture(e.select("img").attr("src"));
            String tmp = e.select(".c2 .li2").text();
            String[] strArr = tmp.split("/");
            food.setTasteType(strArr[1].trim());

            Matcher m = idPattern.matcher(food.getDetailsSite());
            if (m.find()) {
                tmp = m.group();
                food.setId(tmp.substring(1, tmp.length() - 5));
            } else {
                food.setId(new Date().toString());
            }

            getMore(food);

            foodList.add(food);
        }
...

so easy,想要啥,就拿啥。嗯,还有个点赞数没法拿,不怕,还是同样的套路,照着小赵拿数据的方法来一遍。嘿!看我要变形了!呔!嗯?没有值!!明明浏览器里有,凭啥我就没有?这可咋整,但是小张不能急!!!咦,浏览器页面访问后,又走了一个ajax拿数据,好家伙,被我逮着了,我请求下数据不就行了呗。啊?请求回复403!!又没有数据!!这可咋整,但是小张不能急!!!浏览器能整的,我也能!照着浏览器的请求写呗,少header,我加header。

        HttpGet get = new HttpGet(s);
        get.setHeader("Accept-Encoding", "gzip, deflate, br");
        get.setHeader("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8");
        get.setHeader("Cache-Control", "no-cache");
        get.setHeader("Connection", "keep-alive");
        get.setHeader("Host", "xxxxxxx");
        get.setHeader("Pragma", "no-cache");
        get.setHeader("Referer", "xxxxxxxxxx");
        get.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36");

嘿,来了。小样,还有我小张搞不了的?这么费神的事我也能搞!以后这样的事,就不要找我了!!

3. 比对分析功能

to be continue!!!
github地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77068.html

相关文章

  • 设计模式系列(总纲)

    摘要:前言关于设计模式,想必大家的第一感觉就是过于高深,有点虚吧。为什么要学习设计模式因为要装逼啊咳咳,大家请忽略前面那句话。处处都是设计模式的体现,所以若想攻下,设计模式是必学的。下节预告单例模式 前言 关于设计模式,想必大家的第一感觉就是过于高深,有点虚吧。相对来说,我们还是更熟悉ssh或者ssm之类的开发框架,一个工具用久了就会熟能生巧,就像刷漆工,时间长了也知道如何刷的一手漂亮的好墙...

    leiyi 评论0 收藏0
  • 云计算数据中心综合布线七大发展趋势

    摘要:网络架构扁平化架构布线传统的数据中心数据流主要在服务器和客户机之间流动,我们形象地称之为南北向的流动,云计算数据中心数据流主要在数据中心服务器之间流动,我们称之为东西向流动。  云计算是最近几年最热门的话题之一,我们的生活越来越离不开云,网络订票、购物、订房、订餐等各种应用层出不穷。云计算改变了人们的生活方式,也改变了数据中心的技术发展路线,为了满足不断涌现的互联网应用和不断增长的数据传输需...

    yimo 评论0 收藏0
  • 云计算数据中心综合布线的七大发展趋势

    摘要:为了有效的管理这个生态系统,云计算数据中心通过采用数据中心基础设施管理以及自动基础设施管理等智能化的手段能够实时远程监控数据中心主要的基础设施包括供电温度安防布线,因而大大提高数据中心可视化和管理效率。  云计算是最近几年最热门的话题之一,我们的生活越来越离不开云,网络订票、购物、订房、订餐等各种应用层出不穷。云计算改变了人们的生活方式,也改变了数据中心的技术发展路线,为了满足不断涌现的互联...

    z2xy 评论0 收藏0
  • 云计算突破千亿大关,融合和智能化是未来趋势

    摘要:融合和智能化是云计算领域的两大重要趋势,基础云服务将成为企业基础服务的入口,应用云领域重中台轻应用是未来趋势。9月20日,在爱分析举办的2018·中国云计算高峰论坛上,同方有云董事长程辉、驿氪创始人闵捷、噼里啪智能·财税创始人樊祎、用友研究院院长吕建伟等10多位云计算领域领军人物,就行业未来发展趋势分享了深度观察。同时,爱分析在会上还发布了《中国云计算行业报告》(以下简称报告),《报告》称,...

    bladefury 评论0 收藏0
  • 友盟2015年Q2、Q3季度中国移动互联网趋势报告

    摘要:后岁用户依然是移动互联网的主生力军,但随着后群体的年龄增长,早期移动用户逐渐向较高年龄层人群转移。综合男女性别数据来看,移动用户中的女性群体在较高消费水平人群中占据相当比重。 showImg(https://segmentfault.com/img/bVrA7P); 报告要点:1、 截止至2015年第三季度,活跃设备数达10.8亿,与第二季度相比增长1.9%,增幅进一步放缓,新老...

    yuxue 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<