zoukankan      html  css  js  c++  java
  • uml第二次结对作业

    UML 第二次结对作业

    作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE1/homework/11250
    作业目标 爬取数据,分析数据,存储数据
    作业源代码 https://gitee.com/coderPlus-tr/pair
    队员1 211806404
    队员2 211806353
    条目 数据
    分析时间 10m
    编码时间 80m
    代码行数 220行

    解决思路

    1. 分为两个模块,一个是爬虫模块,一个是解析模块
    2. 爬虫模块,登陆网站存储cookie信息,先爬取活动列表页,拿到所有活动链接,在爬取各个活动链接
    3. 解析模块,解析爬虫爬取下来的网页,进行统计分析,并写入文件

    具体实现

    1. 采用java http客户端okhttp3解析库jsoup
    2. 爬虫模块利用okhttpCookie Jar 来保存和添加cookie具体实现如下
    // CookieJarManager.java
    import okhttp3.Cookie;
    import okhttp3.CookieJar;
    import okhttp3.HttpUrl;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    
    /**
     *   通过cookieJar来管理cookie
     */
    public class CookieJarManager implements CookieJar {
    
        private final String TAG = "CookieJarManager";
    
        private final HashMap<String, List<Cookie>> cookieStore = new HashMap<>();
    
    
        @Override
        public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
            if (null == url || null == cookies || cookies.size() <= 0) {
                return;
            }
            cookieStore.put(url.host(), cookies);
    //
    //        for (Cookie cookie : cookies) {
    //            Log.d(TAG, "cookie Name:" + cookie.name());
    //            Log.d(TAG, "cookie Path:" + cookie.path());
    //        }
        }
    
        @Override
        public List<Cookie> loadForRequest(HttpUrl url) {
            if (null != url) {
                List<Cookie> cookies = cookieStore.get(url.host());
                return cookies != null ? cookies : new ArrayList<>();
            } else {
                return new ArrayList<>();
            }
    
        }
    }
    // 在创建httpClient的时候使用这个cookiejar
     private static final OkHttpClient CLIENT = new OkHttpClient.Builder()
                .cookieJar(new CookieJarManager())
                .build();
    
    
    1. 进行模拟登陆
      • fiddle抓包获取登陆参数
      • 模拟登陆
    2. 爬取活动列表页
    3. 拿到所有课堂活动的链接,因为是js跳转,发现链接在div的data-url里面
    4. 爬取所有网页,存储在列表里面
    5. 解析模块解析并存储

    结对

    结对过程

    因为是室友,所以结对过程十分顺利,中间沟通和交流也十分方便,两个人有不同的想法,产生思想碰撞,然后积极解决,对问题的解决有很大的帮助。

    评价to徐大洲

     是一个冷静不会昏头的人,能在复杂的讨论中不迷失方向,一针见血的指出解决方案
    

    评价to陶大锐

        编码能力不错,能很快的完成需求。
    

    结对照片

    资料链接

  • 相关阅读:
    第三天 moyax
    mkfs.ext3 option
    write file to stroage trigger kernel warning
    download fomat install rootfs script
    custom usb-seriel udev relus for compatible usb-seriel devices using kermit
    Wifi Troughput Test using iperf
    learning uboot switch to standby system using button
    learning uboot support web http function in qca4531 cpu
    learngin uboot design parameter recovery mechanism
    learning uboot auto switch to stanbdy system in qca4531 cpu
  • 原文地址:https://www.cnblogs.com/c-aha/p/13767997.html
Copyright © 2011-2022 走看看