首页 > 其他 > 详细

软工实践第五次作业-爬虫和自定义词频统计

时间:2018-10-11 19:59:21      阅读:309      评论:0      收藏:0      [点我收藏+]

软工实践第五次作业-爬虫和自定义词频统计

题目地址:https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1816W/homework/2160

Git地址

031602111傅海涛
031602115黄家雄

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划
? Estimate ? 估计这个任务需要多少时间 600 750
Development 开发
? Analysis ? 需求分析 (包括学习新技术) 40 50
? Design Spec ? 生成设计文档 10 20
? Design Review ? 设计复审 10 20
? Coding Standard ? 代码规范 (为目前的开发制定合适的规范) 10 20
? Design ? 具体设计 60 100
? Coding ? 具体编码 400 550
? Code Review ? 代码复审 10 20
? Test ? 测试(自我测试,修改代码,提交修改) 30 200
Reporting 报告
? Test Repor ? 测试报告 10 10
? Size Measurement ? 计算工作量 20 20
? Postmortem & Process Improvement Plan ? 事后总结,并提出过程改进计划 30 40
合计 630 1050

分工

使用工具:Java

傅海涛:爬虫,词频统计

黄家雄:词频统计

解题思路

爬虫

网站源码查看分析

技术分享图片

爬虫实现分析
    • 获取全部代码
    • 获取Title和摘要url:筛选<dt> 标签,得到的内容contents清洗掉所有html标签,剩下的就是Title的内容,存到名为titles的List里.在把之前得到的content中筛选 <a> 标签的 href属性,存到名为urls的List里.
    • 将得到的urls传到封装好的函数中进行爬虫.操做和上面差不多,筛选<div id="abstract">的内容,在清洗掉html的标签就可以获得所有的摘要.把内容存到 名为abstracts的List里.
    • 将获得的titles和abstracts进行拼接并生成到result.txt中.

技术分享图片

获取title和url
    //获取title和url
    public static void getTitle(String content){
        Pattern r = Pattern.compile("<dt [^>]*?>[\\w\\W]*?<\\/dt>");
        Matcher m = r.matcher(content);
        while ( true ) {
            if (m.find()) {
                Pattern r2 = Pattern.compile("<a [^>]*?>[\\w\\W]*?<\\/a>");
                Matcher m2 = r2.matcher(m.group(0));
                //输出标题
                if (m2.find()) {
                    String url = GetContent.match(m2.group(0), "a", "href");
//                      System.out.println(url);
                    urls.add(url);
                    //筛除html标签
                    String title = outHtml(m2.group(0));
                    titles.add(title);
//                      System.out.println(title);
                }
            } else {
                break;
            }
        }
    }
获取html标签里面的某个属性值
    //获取html标签里面的某个属性值
    public static String  match(String source, String element, String attr) {
        String result = new String();
        String reg = "<" + element + "[^<>]*?\\s" + attr + "=[‘\"]?(.*?)[‘\"].*?>";
        Matcher m = Pattern.compile(reg).matcher(source);
        while (m.find()) {
            String r = m.group(1);
            result = r;
        }
        return result;
    }
清除html标签
//筛除html标签
    public static String outHtml(String cont){
        String  con =cont.replaceAll("</?[^>]+>", "");
        return con;
    }

词频统计

分析
    • 主要功能和之前的一次作业要求一样,在此基础上添加新的自定义命令,之前的统计只是把单词的数量累加,就好比权重为1,只需要把按照命令把title的累加*10.至于输出n个就只需在原来的基础上面封装个函数并把n传进.至于词组统计则需要将原来单词统计上修改判断单词数量并拼接输出.
  • 关键代码分析

软工实践第五次作业-爬虫和自定义词频统计

原文:https://www.cnblogs.com/fht2018/p/9774627.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!