第二次结对作业:班级成绩表

作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE1/homework/11250
作业目标 掌握获取url和cookie的技术,通过httpclient免登录需求页面获取页面中需求的信息
作业源代码 https://gitee.com/zhao-xiangmin/pair
队员1 <211803240>
队员2 <211806308>

结对的过程

结对的感受

赵湘敏:这次的题目要实现获取非本低页面上的html元素并对其进行归纳整合,但是非本地元素需要通过cookie和url信息来免登录页面,我们在获取cookie和url这两个步骤卡死了,对于cookie信息我们也找了别的同学(已经完成的)进行了对比,用了许多方法都不能获得正确的cookie信息,这让我们再次意识到自己代码知识的浅薄,在这次作业结束后,希望能在作业评讲中了解我们究竟错在哪里,以及cookie信息如何获取。

陈甜:结对期间颇受队友湘敏照顾,在她的帮助下团队有条不紊的进行着设计。在结对过程中,我深深的感受到了我逻辑思维能力的不足,在拼接分散知识点的时候无法做到连续有效,注意力较为分散,多亏队友湘敏提醒,把我拉回正轨。

对对方的评价

赵湘敏:我和她在代码上几乎是同一个级别的小辣鸡,两个菜鸡互相帮扶试了很多方法都不是正确的道路,希望能在之后的合作中继续一起探索新知识

陈甜:代码方面湘敏的指点让我对此收益匪浅,感觉对以前的零散的知识点有了新的认识,同时建立了更连贯通顺的逻辑联系。拥有较强逻辑思考能力,能准确抓取需求,做事积极性很高,能很快的把想法付诸于实践。

结对照片


自己的代码行数:189行
需求分析时间:15min、编码时间:三天

分解需求的思路

  1. 配置文件
  • 创建这个文件是为了将网址与 cookies 信息放在文件中
url=https://xxxxx.com
   cookie=xxx

用Java代码获取网页的cookie信息

Connection conn = Jsoup.connect("https://www.mosoteach.cn/web/index.php?c=interaction&m=index&clazz_course_id=9E603F91-4AF8-11EA-9C7F-98039B1848C6");
		conn.method(Method.GET);   
		conn.followRedirects(false);   
		Response response = conn.execute();   
		System.out.println(response.cookies());

这段输出的结果是
{acw_tc=707c9fca16016300460662856e3f33dee6ac94c657552710998cb9934e3ee5, teachweb=24136aa92b3d28e1e4bf40d583b6a5676793ad64, SERVERID=905c9be0aabb05a31da8a3804ad879b8|1601630046|1601630046}
但是写进config.properties文件后运行代码失败(此处运行是借用陈颖鹏同学的代码)
发现失败后我们对于两边的文件进行了一个比对,他们的cookie是这个_uab_collina=158658350173746185946684; UM_distinctid=174b90e7235f2-01912dc8de05df-7d647865-1fa400-174b90e7236167; CNZZDATA1253495893=1453952563-1600832195-https%253A%252F%252Fcn.bing.com%252F%7C1600832195; acw_tc=707c9fda16014234986082329e34ebe10786126da6573c706a658e2c83bdf6; teachweb=980c95c2e65186a0cab63336dd96f90242b15bac; SERVERID=863f787f5166062248f8482c4d6b940d|1601424394|1601423498
看到这个之后我就想到是不是我们用的方法不对,应该用httpclient,我就去导入了commons-httpclient-3.1.jar包,但是可能是找的代码不对也是报错,无法获取页面的cookie

  1. Java对于html元素的读取
    此处只能纸上谈兵一下了,因为cookie获取失败之后下一步进行不了。
  • 先获取单个作业(将每个作业都获取)
    用select获取div元素中class为homework-item的元素在搜索到所用元素后,查找
<span style="font-size: 12px; color:#333;">

获取这个里面的学生名字
再获取div元素中具有下列特征的元素中这个学生的学号

<div style="line-height: 20px; font-size:12px; color: #666;">

最后获取学生获得的经验值

<span style="color:#8FC31F">
  • 将对应学生的经验值进行整合,再将这些信息分别存入哈希表中,并对哈希表进行合并并输出
  1. Java将写好的数据写入文本文档中
 File file = new File("d:\\array.txt");  //存放数组数据的文件
 FileWriter out = new FileWriter(file);

优势:这样做完之后打代码的时候条理很清晰,写代码的思路不会乱

不会的知识

  1. Java如何把数组打印到txt文件里面[1][2]
  2. Java如何获取网页的cookie信息[3][4][5][6][7][8]
  3. 如何在Chrome中的开发者模式下直接查看cookie信息[9]
  4. 用httpclient获取页面cookie信息[10][11][12]
  5. 如何在Java中合并两个Map[13]
  6. 如何使用JSOUP抓取“需要登录”页[11:1][14][15]
  7. 怎样获取当前网页的URL[16]
  8. java下载html页面---把网页内容保存成本地html以及java对于txt的读写[17]
  9. 获取当前网页的cookies和url[18]————这个查到了之后不知道代码应该放在哪里,暂定无效搜索

参考资料


  1. https://bbs.csdn.net/topics/290035209 ↩︎

  2. https://blog.csdn.net/xiaoyatouxihuanchen/article/details/52556221 ↩︎

  3. https://www.cnblogs.com/lanxiamo/p/5889285.html ↩︎

  4. https://blog.csdn.net/zzq900503/article/details/17785425 ↩︎

  5. https://www.cnblogs.com/tangkai/p/3510689.html ↩︎

  6. https://blog.csdn.net/qq_32691569/article/details/89473077 ↩︎

  7. https://www.cnblogs.com/BensonHe/p/3935677.html ↩︎

  8. https://blog.csdn.net/zzq900503/article/details/17785425?utm_source=blogxgwz3 ↩︎

  9. https://jingyan.baidu.com/article/d713063517441352fcf4751f.html ↩︎

  10. https://www.cnblogs.com/junrong624/p/5502653.html ↩︎

  11. https://www.cnblogs.com/longronglang/p/12773822.html ↩︎ ↩︎

  12. https://www.cnblogs.com/zeze/p/4953414.html ↩︎

  13. https://blog.csdn.net/w605283073/article/details/82987157 ↩︎

  14. https://blog.csdn.net/tanwenfang/article/details/87372724 ↩︎

  15. https://blog.csdn.net/weixin_30781107/article/details/98371795 ↩︎

  16. https://www.cnblogs.com/aisowe/p/11536035.html ↩︎

  17. https://blog.csdn.net/zzq900503/article/details/44035901/ ↩︎

  18. https://www.cnblogs.com/luckiness/p/13401444.html ↩︎

posted @ 2020-10-02 18:09  陌语mo  阅读(259)  评论(2编辑  收藏  举报