<span class="token keyword">package com<span class="token punctuation">.mkyong<span class="token punctuation">;
<span class="token keyword">import org<span class="token punctuation">.jsoup<span class="token punctuation">.Jsoup<span class="token punctuation">;
<span class="token keyword">import org<span class="token punctuation">.jsoup<span class="token punctuation">.nodes<span class="token punctuation">.Document<span class="token punctuation">;
<span class="token keyword">import org<span class="token punctuation">.jsoup<span class="token punctuation">.nodes<span class="token punctuation">.Element<span class="token punctuation">;
<span class="token keyword">import org<span class="token punctuation">.jsoup<span class="token punctuation">.select<span class="token punctuation">.Elements<span class="token punctuation">;
<span class="token keyword">import java<span class="token punctuation">.io<span class="token punctuation">.IOException<span class="token punctuation">;
<span class="token keyword">public <span class="token keyword">class <span class="token class-name">HTMLParserExample2 <span class="token punctuation">{
<span class="token keyword">public <span class="token keyword">static <span class="token keyword">void <span class="token function">main<span class="token punctuation">(String<span class="token punctuation">[<span class="token punctuation">] args<span class="token punctuation">) <span class="token punctuation">{
Document doc<span class="token punctuation">;
<span class="token keyword">try <span class="token punctuation">{
<span class="token comment">//get all images
doc <span class="token operator">= Jsoup<span class="token punctuation">.<span class="token function">connect<span class="token punctuation">(<span class="token string">"http://yahoo.com"<span class="token punctuation">)<span class="token punctuation">.<span class="token function">get<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;
Elements images <span class="token operator">= doc<span class="token punctuation">.<span class="token function">select<span class="token punctuation">(<span class="token string">"img[src~=(?i).(png|jpe?g|gif)]"<span class="token punctuation">)<span class="token punctuation">;
<span class="token keyword">for <span class="token punctuation">(Element image <span class="token operator">: images<span class="token punctuation">) <span class="token punctuation">{
System<span class="token punctuation">.out<span class="token punctuation">.<span class="token function">println<span class="token punctuation">(<span class="token string">"nsrc : " <span class="token operator">+ image<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"src"<span class="token punctuation">)<span class="token punctuation">)<span class="token punctuation">;
System<span class="token punctuation">.out<span class="token punctuation">.<span class="token function">println<span class="token punctuation">(<span class="token string">"height : " <span class="token operator">+ image<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"height"<span class="token punctuation">)<span class="token punctuation">)<span class="token punctuation">;
System<span class="token punctuation">.out<span class="token punctuation">.<span class="token function">println<span class="token punctuation">(<span class="token string">"width : " <span class="token operator">+ image<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"width"<span class="token punctuation">)<span class="token punctuation">)<span class="token punctuation">;
System<span class="token punctuation">.out<span class="token punctuation">.<span class="token function">println<span class="token punctuation">(<span class="token string">"alt : " <span class="token operator">+ image<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"alt"<span class="token punctuation">)<span class="token punctuation">)<span class="token punctuation">;
<span class="token punctuation">}
<span class="token punctuation">} <span class="token keyword">catch <span class="token punctuation">(<span class="token class-name">IOException e<span class="token punctuation">) <span class="token punctuation">{
e<span class="token punctuation">.<span class="token function">printStackTrace<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;
<span class="token punctuation">}
<span class="token punctuation">}
<span class="token punctuation">}
3. Get Meta elements
The last example simulates an offline HTML page and use jsoup to parse the content. It grabs the “meta” keyword and description,and also the div element with the id of “color”.
<span class="token keyword">import org<span class="token punctuation">.jsoup<span class="token punctuation">.Jsoup<span class="token punctuation">;
<span class="token keyword">import org<span class="token punctuation">.jsoup<span class="token punctuation">.nodes<span class="token punctuation">.Document<span class="token punctuation">;
<span class="token keyword">public <span class="token keyword">class <span class="token class-name">HTMLParserExample3 <span class="token punctuation">{
<span class="token keyword">public <span class="token keyword">static <span class="token keyword">void <span class="token function">main<span class="token punctuation">(String<span class="token punctuation">[<span class="token punctuation">] args<span class="token punctuation">) <span class="token punctuation">{
StringBuffer html <span class="token operator">= <span class="token keyword">new <span class="token class-name">StringBuffer<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<!DOCTYPE html>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<html lang="en">"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<head>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<meta charset="UTF-8" />"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<title>Hollywood Life</title>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<meta name="description" content="The latest entertainment news" />"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<meta name="keywords" content="hollywood gossip,hollywood news" />"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"</head>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<body>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<div id='color'>This is red</div> />"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"</body>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"</html>"<span class="token punctuation">)<span class="token punctuation">;
Document doc <span class="token operator">= Jsoup<span class="token punctuation">.<span class="token function">parse<span class="token punctuation">(html<span class="token punctuation">.<span class="token function">toString<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">)<span class="token punctuation">;
<span class="token comment">//get meta description content
String description <span class="token operator">= doc<span class="token punctuation">.<span class="token function">select<span class="token punctuation">(<span class="token string">"meta[name=description]"<span class="token punctuation">)<span class="token punctuation">.<span class="token function">get<span class="token punctuation">(<span class="token number">0<span class="token punctuation">)<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"content"<span class="token punctuation">)<span class="token punctuation">;
System<span class="token punctuation">.out<span class="token punctuation">.<span class="token function">println<span class="token punctuation">(<span class="token string">"Meta description : " <span class="token operator">+ description<span class="token punctuation">)<span class="token punctuation">;
<span class="token comment">//get meta keyword content
String keywords <span class="token operator">= doc<span class="token punctuation">.<span class="token function">select<span class="token punctuation">(<span class="token string">"meta[name=keywords]"<span class="token punctuation">)<span class="token punctuation">.<span class="token function">first<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"content"<span class="token punctuation">)<span class="token punctuation">;
System<span class="token punctuation">.out<span class="token punctuation">.<span class="token function">println<span class="token punctuation">(<span class="token string">"Meta keyword : " <span class="token operator">+ keywords<span class="token punctuation">)<span class="token punctuation">;
String color1 <span class="token operator">= doc<span class="token punctuation">.<span class="token function">getElementById<span class="token punctuation">(<span class="token string">"color"<span class="token punctuation">)<span class="token punctuation">.<span class="token function">text<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;
String color2 <span class="token operator">= doc<span class="token punctuation">.<span class="token function">select<span class="token punctuation">(<span class="token string">"div#color"<span class="token punctuation">)<span class="token punctuation">.<span class="token function">get<span class="token punctuation">(<span class="token number">0<span class="token punctuation">)<span class="token punctuation">.<span class="token function">text<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;
System<span class="token punctuation">.out<span class="token punctuation">.<span class="token function">println<span class="token punctuation">(color1<span class="token punctuation">)<span class="token punctuation">;
System<span class="token punctuation">.out<span class="token punctuation">.<span class="token function">println<span class="token punctuation">(color2<span class="token punctuation">)<span class="token punctuation">;
<span class="token punctuation">}
<span class="token punctuation">}
Output
4. Grabs Form Inputs
This code snippets shows you how to use Jsoup to grab HTML form inputs (name and value). For detail usage,please refer to this?.
Document doc <span class="token operator">= Jsoup<span class="token punctuation">.<span class="token function">parse<span class="token punctuation">(html<span class="token punctuation">)<span class="token punctuation">;
<span class="token comment">//HTML form id
Element loginform <span class="token operator">= doc<span class="token punctuation">.<span class="token function">getElementById<span class="token punctuation">(<span class="token string">"your_form_id"<span class="token punctuation">)<span class="token punctuation">;
Elements inputElements <span class="token operator">= loginform<span class="token punctuation">.<span class="token function">getElementsByTag<span class="token punctuation">(<span class="token string">"input"<span class="token punctuation">)<span class="token punctuation">;
List<span class="token operator"><String<span class="token operator">> paramList <span class="token operator">= <span class="token keyword">new <span class="token class-name">ArrayList<span class="token operator"><String<span class="token operator">><span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;
<span class="token keyword">for <span class="token punctuation">(Element inputElement <span class="token operator">: inputElements<span class="token punctuation">) <span class="token punctuation">{
String key <span class="token operator">= inputElement<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"name"<span class="token punctuation">)<span class="token punctuation">;
String value <span class="token operator">= inputElement<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"value"<span class="token punctuation">)<span class="token punctuation">;
<span class="token punctuation">}
<span class="token punctuation">}
5. Get Fav Icon
This code shows you how to use Jsoup to page’s favourite icon.
<span class="token keyword">import org<span class="token punctuation">.jsoup<span class="token punctuation">.Jsoup<span class="token punctuation">;
<span class="token keyword">import org<span class="token punctuation">.jsoup<span class="token punctuation">.nodes<span class="token punctuation">.Document<span class="token punctuation">;
<span class="token keyword">import org<span class="token punctuation">.jsoup<span class="token punctuation">.nodes<span class="token punctuation">.Element<span class="token punctuation">;
<span class="token keyword">public <span class="token keyword">class <span class="token class-name">jSoupExample <span class="token punctuation">{
<span class="token keyword">public <span class="token keyword">static <span class="token keyword">void <span class="token function">main<span class="token punctuation">(String<span class="token punctuation">[<span class="token punctuation">] args<span class="token punctuation">) <span class="token punctuation">{
StringBuffer html <span class="token operator">= <span class="token keyword">new <span class="token class-name">StringBuffer<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<html lang="en">"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<head>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<link rel="icon" href="http://example.com/image.ico" />"<span class="token punctuation">)<span class="token punctuation">;
<span class="token comment">//html.append("<meta content="/images/google_favicon_128.png" itemprop="image">");
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"</head>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"<body>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"something"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"</body>"<span class="token punctuation">)<span class="token punctuation">;
html<span class="token punctuation">.<span class="token function">append<span class="token punctuation">(<span class="token string">"</html>"<span class="token punctuation">)<span class="token punctuation">;
Document doc <span class="token operator">= Jsoup<span class="token punctuation">.<span class="token function">parse<span class="token punctuation">(html<span class="token punctuation">.<span class="token function">toString<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">)<span class="token punctuation">;
String fav <span class="token operator">= <span class="token string">""<span class="token punctuation">;
Element element <span class="token operator">= doc<span class="token punctuation">.<span class="token function">head<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">.<span class="token function">select<span class="token punctuation">(<span class="token string">"link[href~=.*.(ico|png)]"<span class="token punctuation">)<span class="token punctuation">.<span class="token function">first<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;
<span class="token keyword">if<span class="token punctuation">(element<span class="token operator">==null<span class="token punctuation">)<span class="token punctuation">{
element <span class="token operator">= doc<span class="token punctuation">.<span class="token function">head<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">.<span class="token function">select<span class="token punctuation">(<span class="token string">"meta[itemprop=image]"<span class="token punctuation">)<span class="token punctuation">.<span class="token function">first<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;
<span class="token keyword">if<span class="token punctuation">(element<span class="token operator">!=null<span class="token punctuation">)<span class="token punctuation">{
fav <span class="token operator">= element<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"content"<span class="token punctuation">)<span class="token punctuation">;
<span class="token punctuation">}
<span class="token punctuation">}<span class="token keyword">else<span class="token punctuation">{
fav <span class="token operator">= element<span class="token punctuation">.<span class="token function">attr<span class="token punctuation">(<span class="token string">"href"<span class="token punctuation">)<span class="token punctuation">;
<span class="token punctuation">}
System<span class="token punctuation">.out<span class="token punctuation">.<span class="token function">println<span class="token punctuation">(fav<span class="token punctuation">)<span class="token punctuation">;
<span class="token punctuation">}
<span class="token punctuation">}
Output
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!