在這裡,拜歐要把Google新聞首頁的標題都爬回來,先找到包含標題的HTML標籤裡,可以辨別的屬性,如:
從上面可以看到要包著標題的是
span標籤,而且它有一個名為titletext的CSS類別,所以使用jsoup函式,可以這樣做:package idv.jk.web.parser;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.Iterator;
/**
* Created by Javakid on 2015/4/14.
*/
public class HtmlParserMain
{
public static void main(String[] argv)
{
String url = "https://news.google.com.tw/news";
try {
Document doc = Jsoup.connect(url).get();
System.out.println(doc.title());
Elements h1s = doc.select("span.titletext");
Element thisOne = null;
for(Iterator it = h1s.iterator(); it.hasNext();)
{
thisOne = (Element)it.next();
System.out.println(thisOne.html());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面的程式碼中,在第20行先把該網址的網頁內容取回,並且將其封裝成一個org.jsoup.nodes.Document類別的物件。在第21行呼叫
title方法,將該頁的抬頭(title)印出來。在第22行使用選擇器查詢(selector query)來挑出所要的元素,這裡
span.titletext挑選的出來的是class屬性為titletext的span標籤。撰擇器的語法可以參考這裡,若是熟悉jQuery,一定會覺得一模一樣XD。
然後在第28行把其內含的HTML內容印出來。
結果如下:
Google 新聞 毛揆:尊嚴、公平是加入亞投行最高原則| 聯合影音 入亞投行金額朱立倫:非台灣說了算 加入亞投行毛揆:決定權仍在我方 毛治國:亞投行創始章程無法容納台灣 肺癌躍居10大癌症第二女性患者激增 大腸癌7度居冠子宮頸癌首脫離十大排行 每5分26秒就有1人罹癌大腸癌連7年居首位 十大癌症排行!腸癌7度奪冠最兇猛女性肺癌變多 博科聖地猖狂綁架逾2000女性 被博科聖地擄走50少女據報仍生存 (以下省略)

沒有留言:
張貼留言