• 助教小工具


    助教小工具

    从博客爬取学生信息(已完成)

    作业要求

    将个人技术博客和Git账号通过评论的形式发布(在本帖下发布评论即可)。
    格式:Github账号 学号(后5位) 博客地址,三者以空格分隔,
    示例:https://github.com/SivilTaram 02101 http://www.cnblogs.com/easteast/

    抓取学生信息地址

    思路

    1. Chrome调试模式下,查看获取评论的API
    2. 查看API需要的参数,通过抓取当前页面来找到API需要的参数

    第一个问题:

    由上图可知,请求API为:

    http://www.cnblogs.com/mvc/blog/GetComments.aspx?postId=8495419&blogApp=cherylwu&pageIndex=0&anchorCommentId=0&_=1521464785265

    需要以下参数

    1. postId: 8495419
    2. blogApp: cherylwu
    3. pageIndex: 0
    4. anchorCommentId: 0
    5. _: 1521463915572

    第1个参数postId

    第2个参数blogApp

    在这里获取

    第3个参数pageIndex为页码,因为博客园评论为50条一页,学生人数大概三十人,所以一页数据足够,后续考虑分页逻辑。

    第4个参数anchorCommentId没有搞清楚啥意思,所以就按原先的设置为0

    最后一个参数 _ 很显然是时间戳,比较好获取

    new Date().getTime()
    

    抓取学生的信息结果如下:

    https://github.com/fqd332 17085 http://www.cnblogs.com/RuanjianFqd/
    https://github.com/lzwk 17079 http://www.cnblogs.com/MrZhang145689/
    https://github.com/FangStars 17090 http://www.cnblogs.com/FangStar/
    https://github.com/BillCYJ 17093 http://www.cnblogs.com/billcyj/
    https://github.com/HastingsX 17087 http://www.cnblogs.com/zhiwei97/
    https://github.com/chaseMengdi 17070 https://www.cnblogs.com/BoqianLiu/
    https://github.com/liuqiang666 17080 http://www.cnblogs.com/liuqsw/
    https://github.com/JarrySmith 17086 http://www.cnblogs.com/Jarry-smith/
    https://github.com/yangwj001 17073 http://www.cnblogs.com/RuanjianYwj/
    https://github.com/792450735 17088 http://www.cnblogs.com/Nathon1Blog/
    https://github.com/yuyuyu960818 17092 http://www.cnblogs.com/yuyuyu96/
    https://github.com/jiaxuansun 17077 http://www.cnblogs.com/ss07/
    https://github.com/zhaozhiyu/zhaoshidaye 17095 http://www.cnblogs.com/zhaoshidaye/
    https://github.com/handsomesnail 17071 http://www.cnblogs.com/handsomesnail
    https://github.com/HYYYYYZ/- 17068 http://www.cnblogs.com/HYYYYYZ/
    https://github.com/jianjake 17091 http://www.cnblogs.com/jakejian/
    https://github.com/husterSyy/ 17067 http://www.cnblogs.com/husterSyy/
    https://github.com/MasonWater 17072 http://www.cnblogs.com/hayitutu/
    https://github.com/Middamn 17074 http://www.cnblogs.com/middamn/
    https://github.com/Hoyifei 17078 http://www.cnblogs.com/Komeiji-Koishi/
    https://github.com/hddddd 17083 http://www.cnblogs.com/hddddd/
    https://github.com/wwwwu 16081 http://www.cnblogs.com/mengue/
    https://github.com/CG0317 17075 http://www.cnblogs.com/kkdzz/
    https://github.com/Aabon00 17082 http://www.cnblogs.com/dilidiligy/
    https://github.com/LantyrLYL 90035 http://www.cnblogs.com/Lantyr/
    https://github.com/mrlandiao 17081 http://www.cnblogs.com/mrlandiao/
    https://github.com/skz12345 17069 http://www.cnblogs.com/fleshbone/
    https://github.com/245553473 17076 http://www.cnblogs.com/carroll/
    https://github.com/aaliku 17084 http://www.cnblogs.com/17084aaliku/
    https://github.com/mostannno 17089 http://www.cnblogs.com/miaoTer/
    https://github.com/hcy6668 17094 http://www.cnblogs.com/Mitchell977/
    

    自动执行exe文件(进行中)

    1. 创建下载exe文件的根目录、

      • test
        • apps
          • 学号后五位_github用户名
          • 学号后五位_github用户名
          • 学号后五位_github用户名
        • answer
    2. 将学生信息存放到本地目录c:/students下,学生信息的文件名为studentInfo.txt:

      17176 https://github.com/Daweihao

      16081 https://github.com/wwwwu

      17067 https://github.com/husterSyy

      17068 https://github.com/HYYYYYZ

      ...

    3. 创建学生个人作业文件夹,命名格式:学号后五位_github用户名.如:900035_LantyrLYL

    4. 拼接命令,从github将项目克隆到学生对应文件夹。

    • 自动获取学生个人作业文件夹下的项目目录
    • 从测试用例文档中读取命令
    • 执行读取的命令
    • 获取结果输出文件,并移到指定文件夹中,并删除源目录的结果输出文件

    以上,循环执行

    1. 手动建立测试数据,放在c:/test/testCase目录下。

    2. 拼接命令,执行同学的exe文件,测试字符数统计的方法。

    3. 执行测试用例集

    update 2018-03-31

    • 多线程下载学生作业
    • 验证结果(字符串全匹配)

    源码

    TATools

  • 相关阅读:
    Web容器中DefaultServlet详解
    MySQL笔记(四)DDL与DML风格参考
    MySQL笔记(三)由txt文件导入数据
    MySQL Crash Course #21# Chapter 29.30. Database Maintenance & Improving Performance
    MySQL Crash Course #20# Chapter 28. Managing Security
    Linux笔记 #07# 搭建机器学习环境
    Google's Machine Learning Crash Course #03# Reducing Loss
    MySQL Crash Course #19# Chapter 27. Globalization and Localization
    MySQL Crash Course #18# Chapter 26. Managing Transaction Processing
    MySQL Crash Course #17# Chapter 25. 触发器(Trigger)
  • 原文地址:https://www.cnblogs.com/cherylwu/p/8594073.html
Copyright © 2020-2023  润新知