Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)
Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)
一、团队课程设计博客链接
二、个人负责模块或任务说明
1.网络爬虫
首先,一个博客作业教学数据分析系统的基础就是相关的数据。
其次,系统是通过网络爬虫技术抓取博客网页源码上的数据。
最后,将抓取的数据存入设计好的数据库以供提取分析。
三、自己的代码提交记录截图

四、自己负责模块或任务详细说明
1.负责模块
(1)抓取每位同学每次博客作业网页的浏览量、阅读量、篇幅、图片数量;
(2)把每位同学的学号和分数、每次博客作业地址、图片数量、篇幅、浏览量、阅读数量存入数据库。
2.任务详细说明
(1)图片数量抓取
利用Jsoup获取网页源码,然后利用getElementsByTag()筛选img标签,统计图片数量。
(2)文章篇幅抓取
直接利用size()方法统计网页源码篇幅。
(3)浏览量和阅读量数据抓取
<1>一开始就直接想从作业博客原始链接的元素源码:

想直接用Jsoup方法抓取,如下部分测试代码段:
// 获取目标HTML代码
Elements elements1 = doc.select("[class=postDesc]");
// 获取浏览数量
Elements elements2 = elements1.select("#post_view_count");
String browse = elements2.get(0).text();
System.out.println(browse);
// 获得评论数量
Elements elements3 = elements1.select("#post_comment_count");
String comment = elements3.get(0).text();
System.out.println(comment);
然后两个的抓取的结果都是“...”。
<2>查看网页源码后如下:

<3>然后利用FireBug调试,获得浏览量的url
然后寻找到浏览量页面的url的规律:"http://www.cnblogs.com/mvc/blog/ViewCountCommentCout.aspx?postId="+"每个学生的博客链接的postId"
以我的作业为例子查看网页源码:

然后利用select("body").text()获取浏览量。
<4>同样获得阅读量的url
拼装办法:"http://www.cnblogs.com/mvc/blog/GetComments.aspx?postId="+postId+"&blogApp="+name+"&pageIndex=0&anchorCommentId=0";
查看网页如下:

网页源码如下:

首先利用HttpClient获取网页html,然后利用json的方法获得commentCount的值。
(4)以上功能的关键代码
抓取图片数量、文章幅度、浏览量、阅读量:

获得评论量的实现:

(5)建立一个WebCrawler类,连接数据库,利用多线程读取garde表的url、学号、分数,并且利用每个学生的博客作业地址,抓取四个数据后存入数据库以供数据分析。
采用多线程实现网页数据抓取的关键代码:

运行情况:


数据库:


五、课程设计感想
这次java课程设计,我们组一共五个人。我们组提前一周,就每天晚上7点集合敲代码。组长给每位同学都安排好工作,然后每个人都努力地完成工作。在集合敲代码的时候,我对于数据库和多线程的知识并不牢固,经常遇到瓶颈,这时候我会请教daiker,他对爬虫的使用很了解。我们采用导入库的方法,利用jsoup、HttpEntity,抓取网页上需要的数据。在使用这些库的时候,很多方法都是实时百度,以网上代码为例,自己通过学习,学以致用,提升了自己解决问题的能力。最后,我们的课程设计完成了,感谢组长和daiker的带领。我们通过课程设计,相互了解,相互促进,是一次很好的体验。
Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)的更多相关文章
- Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)
#课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...
- Java课程设计——博客作业教学数据分析系统(201521123091 李嘉廉)
#课程设计--博客作业教学数据分析系统(201521123084 李嘉廉) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 數據分析 Kmeans聚類算法實現 多元綫性 ...
- java课程设计——博客作业教学数据分析系统(201521123083 戴志斌)
目录 一.团队课程设计博客链接 二.个人负责模块或任务说明 三.自己的代码提交记录截图 四.自己负责模块或任务详细说明 五.课程设计感想 (题外话,终于可以用markdown建目录) 一.团队课程设计 ...
- Java语言课程设计——博客作业教学数据分析系统(201521123107 张翔)
#Java语言课程设计--博客作业教学数据分析系统(个人博客) 1.团队课程设计博客链接 [博客作业教学数据分析系统(From:网络五条狗)](http://www.cnblogs.com/fanta ...
- Java课程设计博客(个人)
Java课程设计博客(个人) 1. 团队课程设计博客链接 http://www.cnblogs.com/wkfg/p/7063081.html 2. 个人负责模块或任务说明 负责模块/任务:编写doG ...
- Java课程设计博客(团队)
Java课程设计博客(团队) 1. 团队/项目名称 使用JAVA实现简易HTTP服务器 2. 团队成员 组长:林一心 组员:张杭镖 3. 项目git地址 https://github.com/oran ...
- Java第二次博客作业
Java第二次博客作业 时间过的很快啊,在不知不觉中这门课程的学习也就快要过去一半了,现在就来总结一下在这个第二个月的学习当中存在的问题以及得到的心得. 1.前言 第四次题目集和第五次题目集给我的感觉 ...
- OO--第三单元规格化设计 博客作业
OO--第三单元规格化设计 博客作业 前言 第三单元,我们以JML为基础,先后完成了 PathContainer -> Graph -> RailwaySystem 这是一个递进的过程,代 ...
- 团队作业1——团队展示&博客作业查重系统
团队展示: 1.队名:六个核桃 2.队员学号: 王婧(201421123065).柯怡芳(201421123067组长).陈艺菡(201421123068). 钱惠(201421123071).尼玛( ...
随机推荐
- 6.linux下部署 web 项目
安装java 1.下载 linux 环境的jdk 2.上传该压缩包到 linux 系统中并且解压 tar -zxvf 压缩包名 3.配置环境变量并且刷新配置 export JAVA_HOME=/ali ...
- Python爬虫从入门到放弃(二十三)之 Scrapy的中间件Downloader Middleware实现User-Agent随机切换
总架构理解Middleware 通过scrapy官网最新的架构图来理解: 这个图较之前的图顺序更加清晰,从图中我们可以看出,在spiders和ENGINE提及ENGINE和DOWNLOADER之间都可 ...
- mysql 查询性能优化第一章 为什么查询速度会慢
一 为什么查询速度会慢 在尝试编写快速的查询之前,咱们需要清除一点,真正重要的是响应时间.如果把查询看成是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要有 优化查询,实际上要 ...
- [入门向选讲] 插头DP:从零概念到入门 (例题:HDU1693 COGS1283 BZOJ2310 BZOJ2331)
转载请注明原文地址:http://www.cnblogs.com/LadyLex/p/7326874.html 最近搞了一下插头DP的基础知识……这真的是一种很锻炼人的题型…… 每一道题的状态都不一样 ...
- 【NO.12-2】jmeter-执行脚本
//拿jmeter举例 //要进入到jmeter工具的bin目录 //当使用其它的开源测试工具的时候,也可以参考上面这一点,即:进入到bin目录 //如果工具本身不包含bin文件,那么在工具的1级目录 ...
- RMAN基础恢复测试
--RMAN恢复测试实战 RMAN> list backup; using target database control file instead of recovery catalo ...
- javaweb 登陆注册页面
视图的数据修改,表中也修改引用工具类用<%@ page import=""%> <%@ page import="java.util.Date" ...
- 谈谈php依赖注入和控制反转
要想理解php依赖注入和控制反转两个概念,就必须搞清楚如下的问题: DI--Dependency Injection 依赖注入 IoC--Inversion of Control 控制反转 1. ...
- Java企业微信开发_05_消息推送之发送消息(主动)
一.本节要点 1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接 ...
- 简单的用js打印乘法口诀表
<script type="text/javascript"> //乘法口诀表 for (var i = 1; i < 10; i++) { for (var j ...