在這裡,拜歐要把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少女據報仍生存 (以下省略)
沒有留言:
張貼留言