• 爬虫进度


    队友柯奇豪负责WordCount、测试部分、附加题
    高裕翔负责了网络爬虫的实现

    • **代码规范: **

    java


    • 壹- psp

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

    • 贰-设计思路

    1. main主体 , 将url传入util中获取html文件,util将文件传给parse(jsoup+httpclient)解析,封装在集合中,数据最后返回main,再导入sql中 (ps太过麻而烦被放弃了,不过之前上传过);

    2.只用jsoup解析,不采用数据库方法,直接打印到result文件中;


    • 叁- 主要代码&解释

    1. 连接主页,寻找到有每篇paer信息的所有链接作为一个elements

    
       Document document = Jsoup.connect("http://openaccess.thecvf.com/CVPR2018.py").timeout(50000).maxBodySize(0).get();   /* 这里用connect(String url) 方法创建一个 Connection,解析html文件 */
       
            Elements mainPage= document.select("dt.ptitle"); /* 寻找主页中的pititle元素 */
    
    	    int t=mainPage.size(); 
    	    System.out.println("一共有"+ t +"篇论文");/*这一部分只是想看看有多少篇论文,可以去掉*/
    
            Elements urlLink=mainPage.select("a[href^=content_cvpr_2018/html/]");/*用select选择器,在之前寻找到的pititle元素下,寻找a标签中,href为content_cvpr_2018/html/的那些元素*/
            int paperid= -1;  /*ID,标记第几篇paper*/
    
    
    
            PrintStream ps = new PrintStream("e:/results.txt");   /*建立一个输出流txt*/
            System.setOut(ps);  /*输出到ps中,既打印到results文件*/
    
    

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    2.循环爬取连接所有elements中的url,爬取论文信息

            for(Element paper:urlLink) { /*循环爬取url列表*/
                 String URL = paper.attr("href"); /*寻找URLLINK元素下的超链接(即每篇论文信息的入口)*/
                   if(!URL.contains("https://")){
                   URL ="openaccess.thecvf.com/"+URL; /*加入http协议的开头,方便访问*/
    			}
    
    
                Document doc = Jsoup.connect("http://"+URL).timeout(80000).maxBodySize(0).get();/*进入论文信息界面,设置超时好参数*/
    			Elements paperdatas=doc.select("#content");/*寻找conttent id*/
    			Elements title1=paperdatas.select("#papertitle");/*标题*/
                Elements abs=paperdatas.select("#abstract");/*概述*/
                Elements authors = paperdatas.select("#authors");/*作者*/
                Elements opway = paperdatas.select("a[href]");/*其他格式*/
    
    
                    String author=authors.select("b").text();
    			    String title = title1.text();
    			    paperid=paperid+1;
    			    String abst=abs.text();
    			    String openway=opway.text();   /*将爬取的信息转为text,放入对应的变量中方便输出*/
    
    
    

    • 肆 遇到的困难

    • 1.代码编译过程中主类函数找不到(未解决

    描述:编译时疯狂报错,找不到主类main

    尝试方法:修改路径,改动大小写……

    解决方法:最后发现多引用了重复的jar包,删除掉以后就恢复正常了,但是不久后又开始报错找不到主类,于是更换了平台,eclipse,转IDEA

    收获:IDEA好用多了……

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    • 2.超时(半解决)

    描述:有时候成功运行,不过有时候会报错说connect time out

    尝试方法:设置time(只能减少超时出现的频率,网速太慢了还是会超时)

    解决方法:设置time()参数,设置大一些(不过只能减少超时出现的频率,网速太慢了还是会超时)

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    • 3.只能爬502篇……(未解决)

    问题描述

    解决方法:设置maxbodysize就可以了,是jsoup的Api设置问题(不过我之前去找并没有找到这个参数),它默认设置了爬取大小,把函数置0就可以没限制了

    收获:第一次遇到这种问题,也是涨姿势了……

    参考博客链接


    • 伍 单元测试


    • 陆 github记录(部分截图)


    • 柒 队友评价

    编码水平和分析能力都很厉害,有耐心,懂得很多,查找东西的能力也很厉害

    望洋兴叹,我只会喊666


    • 捌 学习进度

    第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
    1 0 0 2 2 拜读博客
    2 255 255 12 14
    3 0 255 23 37 再读构建之法和数据结构,收获很大……尤其是第八章第九章那部分
    4 540 795 20 57 第一次用java做爬虫……
  • 相关阅读:
    JAVA回调
    Json 转换
    memcache 知识点
    Redis基本命令
    LSM树由来、设计思想以及应用到HBase的索引(转)
    ES 集群调整、升级 最佳实践
    Eureka 客户端和服务端间的交互
    logstash 输出到elasticsearch 自动建立index
    Spring 上传文件
    log4j2
  • 原文地址:https://www.cnblogs.com/captri/p/9709923.html
Copyright © 2020-2023  润新知