這是一款通過jsoup解析Html獲取內容的網絡閱讀器,大學時期閒暇完成,對照CSDN的Web頁面元素設計進行解析提取內容,核心功能就是使用jsoup解析。以下是相關截圖:
下載地址:http://tcl.anzhi.com/soft_450735.html http://www.nduoa.com/apk/detail/444229
開源地址:https://github.com/weiyirong/HappyReader
核心解析代碼:
package com.weiyi.itreader.util;
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 android.util.Log;
import com.weiyi.itreader.common.Constant;
import com.weiyi.itreader.entity.ITBlog;
/**
* 功能:ITBlog獲取工具,通過URL解析html獲取網絡文章各項信息,主要用到html解析工具Jsoup
*
* @author moho
* */
public class ITBlogUtil {
/**
* 獲取文章列表
*
* @param url
* 請求的URL
* @return List<ITBlog> IT閱讀文章列表
* */
public static List<ITBlog> getITBlogList(String url) {
List<ITBlog> itBlogs = new ArrayList<ITBlog>();
try {
Document doc = Jsoup.connect(url).get();
Elements titles = doc.getElementsByClass(
Constant.ITBLOG_TITLE_CLASS).tagName("a");// 獲取所有class=link_title的標籤元素
Elements dates = doc.getElementsByClass(Constant.ITBlOG_DATE_CLASS);
Elements urls = titles.select(Constant.HREF_SELECT);
for (int i = 0; i < titles.size(); ++i) {
String blogUrl = Constant.ITBLOG_URL
+ urls.get(i).attributes().get("href");// 每篇文章的URL
String iconUrl = getIconUrlByBlogUrl(blogUrl);
ITBlog itBlog = new ITBlog();
if (iconUrl != null)
itBlog.setIconUrl(iconUrl);// 設置每篇文章的頭圖標URL
itBlog.setTilte(titles.get(i).text());// 獲取a標籤內的文本,即文章標題
itBlog.setDate(dates.get(i).text());// 獲取文章發表日期
itBlog.setUrl(blogUrl);// 獲取超鏈接屬性href的值
itBlogs.add(itBlog);
}
} catch (Exception e) {
e.printStackTrace();
}
return itBlogs;
}
/**
* 獲取文章內容
*
* @param url
* 請求的URL
* @return String IT閱讀文章內容
* */
public static String getContentByURL(String url) {
String content = "";
try {
Document doc = Jsoup.connect(url).get();
Element contentElement = doc
.getElementById(Constant.ITBlOG_CONTENT_ID);
content = contentElement.html();
} catch (Exception e) {
e.printStackTrace();
return content;
}
return content;
}
/**
* 獲取文章圖標,根據文章的URL地址解析img標籤獲取src屬性值
*
* @param blogUrl
* 請求的文章URL
* @return String IT閱讀文章圖標URL
* */
public static String getIconUrlByBlogUrl(String blogUrl) {
String iconUrl = null;
try {
Document doc = Jsoup.connect(blogUrl).get();
Element contentElement = doc
.getElementById(Constant.ITBlOG_CONTENT_ID);// 獲取內容區
Elements imgElements = contentElement.getElementsByTag("img");
if(imgElements.size()>0)
iconUrl = imgElements.get(0).attributes().get("src");// 獲取UIRL,默認取第一個遇到的img的URL
} catch (Exception e) {
e.printStackTrace();
}
return iconUrl;
}
}