package com.tan.code;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import com.tan.code.DeleteHtml.HtmlText;
public class SpiderForGxnuInfo extends AbstractSpider {
public SpiderForGxnuInfo() {
super("http://www.gxnu.edu.cn/",
"Guangxi Normal University --- 广西师范大学:尊师重道 敬业乐群");
// TODO Auto-generated constructor stub
}
@Override
public List<NewsModel> getNews() throws IOException {
// TODO Auto-generated method stub
String content = "";
List<NewsModel> list = new ArrayList<NewsModel>();
Document document = Jsoup.connect(url).timeout(6000).get();
Elements tdelements = document.select("td[align=left]");
for (Element tde : tdelements) {
String col_value = tde.attr("colspan");
// 如果colspan的值为5,说明是新闻标签-有點亂,第一次寫不想把代碼提取出來了
if (col_value.equals("5")) {
Elements aelements = tde.getElementsByTag("a");
for (Element linkElement : aelements) {
NewsModel newsModel = new NewsModel();
String link = linkElement.attr("href");
Document contentDocument = Jsoup.connect(link)
.timeout(6000).get();
Element contentElement = contentDocument.select("div.bd")
.first();
// 获取标题
Elements tElement = contentElement.getElementsByTag("dt");
// 设置标题
newsModel.setTitle(tElement.text());
Elements pElements = contentElement.getElementsByTag("p");
if (!pElements.isEmpty()) {
for (Element pElement : pElements) {// 得到文章的每一段
content += pElement;
}
}
newsModel.setContent(HtmlText.Html2Text(content));
content = "";
list.add(newsModel);
}
}
// 如果colspan的值为6,说明是公告信息
else if (col_value.equals("6")) {
Elements aelements = tde.getElementsByTag("a");
for (Element linkElement : aelements) {
NewsModel newsModel = new NewsModel();
String link = linkElement.attr("href");
// 获取链接的文本内容
String linktext = linkElement.text().toString();
if (!linktext.contains("[")) {
Document contentDocument = Jsoup.connect(link)
.timeout(6000).get();
// 获取标题div
// Element contentElement = contentDocument.select(
// "div[align]").first();
// newsModel.setTitle(contentElement.text());
// 获取内容标签
Element content_div = contentDocument.select(
"div#detailContent").first();
//--------------------------------------------------------------淩亂的判斷,算了不提取信息了,遭罪---------------------------------------
// // 遍历p,获取内容[无分类的公告信息的内容是p标签]
// Elements pels = content_div.select("p");
// if (!pels.isEmpty()) {
// // 第一个p标签为标题标签
// newsModel.setTitle(pels.get(0).text());
// for (Element pel : pels) {
// content += pel.text();
//
// }
// }
// 【通知】【校内公示】内容在div标签里面
// -----------------------看到这个师大的html标签,我凌乱了,这个是哪位大神做的---------------------//
// else {
// // 文档的第一个align属性为center的div标签为标题
// newsModel.setTitle(contentDocument
// .select("div[align=center]").first().text()
// .toString());
//
// // 文档的align属性为left的div标签为内容
// Elements c_divs = contentDocument
// .getElementsByAttribute("div[align=left]");
// for (Element c_div : c_divs) {
// content += c_div.text();
// }
// }
//else
//-------------------------------------------------------------------------------------------------------------------------------
content+=content_div.text();
newsModel.setContent(HtmlText.Html2Text(content));
content = "";
list.add(newsModel);
}
}
}
}
return list;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Jsoup_Test2.zip (30个子文件)
Jsoup_Test2
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.wst.common.component 471B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 500B
org.eclipse.jdt.core.prefs 395B
src
com
tan
code
DeleteHtml.java 2KB
NewsModel.java 930B
SpiderForLeiphone.java 3KB
SpiderForGxnuInfo.java 4KB
AbstractSpider.java 390B
MyTest.java 623B
Spider.java 178B
SpiderForGxnuNews.java 2KB
.project 2KB
WebRoot
META-INF
MANIFEST.MF 36B
WEB-INF
web.xml 404B
classes
com
tan
code
NewsModel.class 1KB
AbstractSpider.class 631B
DeleteHtml.class 361B
DeleteHtml$HtmlText.class 2KB
Spider.class 260B
MyTest.class 1KB
SpiderForGxnuInfo.class 4KB
SpiderForLeiphone.class 4KB
SpiderForGxnuNews.class 3KB
lib
jsoup-1.7.2.jar 287KB
index.jsp 834B
.mymetadata 306B
.classpath 681B
.myeclipse
共 30 条
- 1
资源评论
Mr_Tank_
- 粉丝: 68
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于python实现的多线程爬虫爬取电影天堂资源
- 基于MFC的教职工信息管理系统c++源码含代码注释.zip
- 毕业设计-基于Vue + Node的外卖系统设计与实现
- python烟花代码示例
- 中国各地级市工业三废数据(2006-2021年).xlsx
- 基于MFC的校园导航程序(使用最短路径dijkstra算法).rar
- Android Studio android APP 视频作为视图背景需要源代码或想了解其实现原理的可以私心我
- com.ZeroneGames.GreenProject.apk
- Python自动化开发入门教程
- 4399GameSem_116_13955_207551_6.apk
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功