package com.roboo.like.google.news.content.utils; import java.io.IOException; import java.util.LinkedList; import java.util.Locale; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import android.text.TextUtils; public class GeekParkNewsContentUtils extends BaseNewsContentUtils { @Override public LinkedList<String> getNewsContentDataList(String newsUrl) throws IOException { return getGeekParkNewsDataList(newsUrl); } public static LinkedList<String> getGeekParkNewsDataList(String newsUrl) throws IOException { LinkedList<String> data = new LinkedList<String>(); Elements majorElements; Element majorElement = null; Document document = Jsoup.connect(newsUrl).get(); // System.out.println(document); majorElements = document.getElementsByClass("tips"); StringBuffer stringBuffer = new StringBuffer(); if (!majorElements.isEmpty()) { String coreContent = majorElements.get(0).text(); if (!TextUtils.isEmpty(coreContent)) { data.add(coreContent); } } majorElements = document.getElementsByClass("g-content"); if (!majorElements.isEmpty()) { // System.out.println("majorElements.get(0) = " + majorElements.get(0)); majorElements = majorElements.get(0).getElementsByTag("p"); if (!majorElements.isEmpty()) { for (int i = 0; i < majorElements.size(); i++) { String content = ""; majorElement = majorElements.get(i); Elements imgElements = majorElement.getElementsByTag("a"); if (!imgElements.isEmpty()) { content = imgElements.get(0).attr("href"); // System.out.println("src =" + imgElements.get(0).attr("src")); } else { // Elements spanElements = majorElement.getElementsByTag("span"); // if (!spanElements.isEmpty()) // { // for (int ii = 0; ii < spanElements.size(); ii++) // { // majorElement = spanElements.get(ii); // content = content + majorElement.text(); // } // // System.out.println("text =" + majorElement.text()); // } // else // { // } content = majorElement.text(); } System.out.println(i + " :: content = " + content); if (!TextUtils.isEmpty(content)) { if (isImg(content)) { data.add(content); data.add(stringBuffer.toString()); stringBuffer = new StringBuffer(); } else { if (!content.startsWith("http")) { stringBuffer.append(FOUR_BLANK_SPACE); stringBuffer.append(content); stringBuffer.append("\r\n\r\n"); } } } if (i == majorElements.size() - 1) { data.add(stringBuffer.toString()); } } } } return data; } public static boolean isImg(String str) { return str.toLowerCase(Locale.getDefault()).endsWith(".png") || str.toLowerCase(Locale.getDefault()).endsWith(".jpg") || str.toLowerCase(Locale.getDefault()).endsWith("gif"); } }