原文地址:http://www.mkyong.com/java/jsoup-html-parser-hello-world-examples/

Jsoup, a HTML parser, its “jquery-like” and “regex” selector syntax is very easy to use and flexible enough to get whatever you want. Below are three examples to show you how to use Jsoup to get links, images, page title and “div” element content from a HTML page.

Download jsoup
The jsoup is available in Maven central repository. For non-Maven user, just download it from jsoup website.

pom.xml
<dependency><groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.2</version> </dependency>

1. Grabs All Hyperlinks

This example shows you how to use jsoup to get page’s title and grabs all links from “google.com”.

HTMLParserExample1.java
package com.mkyong;import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; public class HTMLParserExample1 { public static void main(String[] args) { Document doc; try { // need http protocol doc = Jsoup.connect("http://google.com").get(); // get page title String title = doc.title(); System.out.println("title : " + title); // get all links Elements links = doc.select("a[href]"); for (Element link : links) { // get the value from href attribute System.out.println("\nlink : " + link.attr("href")); System.out.println("text : " + link.text()); } } catch (IOException e) { e.printStackTrace(); } } }

Output

title : Googlelink : http://www.google.com.my/imghp?hl=en&tab=wi
text : Imageslink : http://maps.google.com.my/maps?hl=en&tab=wl
text : Maps//omitted for readability
Note
It’s recommended to specify a “userAgent” in Jsoup, to avoid HTTP 403 error messages.

Document doc = Jsoup.connect("http://anyurl.com") .userAgent("Mozilla") .get();

2. Grabs All Images

The second example shows you how to use the Jsoup regex selector to grab all image files (png, jpg, gif) from “yahoo.com”.

HTMLParserExample2.java
package com.mkyong;package com.mkyong; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; public class HTMLParserExample2 { public static void main(String[] args) { Document doc; try { //get all images doc = Jsoup.connect("http://yahoo.com").get(); Elements images = doc.select("img[src~=(?i)\\.(png|jpe?g|gif)]"); for (Element image : images) { System.out.println("\nsrc : " + image.attr("src")); System.out.println("height : " + image.attr("height")); System.out.println("width : " + image.attr("width")); System.out.println("alt : " + image.attr("alt")); } } catch (IOException e) { e.printStackTrace(); } } }

Output

src : http://l.yimg.com/a/i/mntl/ww/events/p.gif
height : 50
width : 202
alt : Yahoo!src : http://l.yimg.com/a/i/ww/met/intl_flag_icons/20111011/my_flag.gif
height :
width :
alt ://omitted for readability

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”.

HTMLParserExample3.java
package com.mkyong;import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class HTMLParserExample3 { public static void main(String[] args) { StringBuffer html = new StringBuffer(); html.append("<!DOCTYPE html>"); html.append("<html lang=\"en\">"); html.append("<head>"); html.append("<meta charset=\"UTF-8\" />"); html.append("<title>Hollywood Life</title>"); html.append("<meta name=\"description\" content=\"The latest entertainment news\" />"); html.append("<meta name=\"keywords\" content=\"hollywood gossip, hollywood news\" />"); html.append("</head>"); html.append("<body>"); html.append("<div id='color'>This is red</div> />"); html.append("</body>"); html.append("</html>"); Document doc = Jsoup.parse(html.toString()); //get meta description content String description = doc.select("meta[name=description]").get(0).attr("content"); System.out.println("Meta description : " + description); //get meta keyword content String keywords = doc.select("meta[name=keywords]").first().attr("content"); System.out.println("Meta keyword : " + keywords); String color1 = doc.getElementById("color").text(); String color2 = doc.select("div#color").get(0).text(); System.out.println(color1); System.out.println(color2); } }

Output

Meta description : The latest entertainment news
Meta keyword : hollywood gossip, hollywood news
This is red
This is red

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 automate login a website with Java.

public void getFormParams(String html){ Document doc = Jsoup.parse(html); //HTML form id Element loginform = doc.getElementById("your_form_id"); Elements inputElements = loginform.getElementsByTag("input"); List<String> paramList = new ArrayList<String>(); for (Element inputElement : inputElements) { String key = inputElement.attr("name"); String value = inputElement.attr("value"); } }

5. Get Fav Icon

This code shows you how to use Jsoup to page’s favourite icon.

jSoupExample.java
package com.mkyong;import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; public class jSoupExample { public static void main(String[] args) { StringBuffer html = new StringBuffer(); html.append("<html lang=\"en\">"); html.append("<head>"); html.append("<link rel=\"icon\" href=\"http://example.com/image.ico\" />"); //html.append("<meta content=\"/images/google_favicon_128.png\" itemprop=\"image\">"); html.append("</head>"); html.append("<body>"); html.append("something"); html.append("</body>"); html.append("</html>"); Document doc = Jsoup.parse(html.toString()); String fav = ""; Element element = doc.head().select("link[href~=.*\\.(ico|png)]").first(); if(element==null){ element = doc.head().select("meta[itemprop=image]").first(); if(element!=null){ fav = element.attr("content"); } }else{ fav = element.attr("href"); } System.out.println(fav); } }

Output

http://example.com/image.ico

转载于:https://www.cnblogs.com/davidwang456/p/7614096.html

jsoup HTML parser hello world examples--转相关推荐

  1. Jsoup代码解读之四-parser(上)

    转载自  Jsoup代码解读之四-parser(上) 作为Java世界最好的HTML 解析库,Jsoup的parser实现非常具有代表性.这部分也是Jsoup最复杂的部分,需要一些数据结构.状态机乃至 ...

  2. jsoup获得css,Jsoup代码解读之五-实现一个CSS Selector

    Jsoup代码解读之七-实现一个CSS Selector 当当当!终于来到了Jsoup的特色:CSS Selector部分.selector也是我写的爬虫框架webmagic开发的一个重点.附上一张s ...

  3. 主题:jsoup使用

    jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据.请参考 ...

  4. Java爬虫之JSoup使用教程

    title: Java爬虫之JSoup使用教程 date: 2018-12-24 8:00:00 +0800 update: 2018-12-24 8:00:00 +0800 author: me c ...

  5. JSoup快速入门-java解析html源码

    转发:https://www.yiibai.com/jsoup/jsoup-quick-start.html soup是用于解析HTML,就类似XML解析器用于解析XML. Jsoup它解析HTML成 ...

  6. 采集 58同城 房产数据信息 | Java爬虫 Jsoup

    一个数据采集系统(通俗的说就是爬虫),用来采集 58同城 房产 | 郑州中的房屋数据.使用 Java 语言和Jsoup库编写,这里分享给大家. 最后采集的数据结果 CSV 文件保存的,如下所示 说明 ...

  7. 基于JSoup库的java爬虫开发学习——小步快跑

    因某需求,需要使用java从网页上爬取一些数据来使用,花了点时间看了一下JSoup,简单介绍一下 jsoup is a Java library for working with real-world ...

  8. Jsoup,一款超好用的HTML文本解析Java工具

    引言 对于一段HTML文本,需要去掉文本内所有HTML标签,只保留纯文本内容,可以怎么实现?看到很多写正则表达式,用StringUtils里的replace方法实现的.我自己也尝试了一下,发现正则匹配 ...

  9. Java爬取解析去哪儿景点信息

    前言:这两周在做 Web 课的大作业,顺便琢磨了一下如何使用 Java 从网上获取一些数据,现在写这篇博客记录一下. PS:这里仅限交流学习用,如利用代码进行恶意攻击他网站,和作者无关!!! Java ...

最新文章

  1. React.js入门笔记
  2. c3p0 mysql 连接池配置文件_数据库连接池c3p0的使用
  3. Oracle 安装 网络配置 警告
  4. python renamer模块_artellapipe-tools-renamer-以简单的方式重命名DCC对象的工具-Tomas Poveda...
  5. 轮环(Ouroboros)世界观介绍,摘自Guide Book
  6. 【青草识别】基于matlab GUI形态学马唐草+牛筋草识别【含Matlab源码 1041期】
  7. POJ_3984迷宫问题(bfs基础题)
  8. 2021-04-25 AndroidStudio拖动条_小白龙抄作业
  9. amc 美国数学竞赛能用计算机吗,关于AMC美国数学竞赛的QA
  10. Discuz X 多页面专题制作教程
  11. 蔡康永的说话之道2-笔记
  12. Maven的settings.xml文件结构之Servers,Mirror和Repository
  13. 【中级计量经济学】Lecture 2 多重共线性
  14. docker-redis
  15. opporeno5k怎样关闭乐划锁屏锁屏杂志
  16. Matlab时频工具箱tftb-0.2安装
  17. 用Python自动批量提取Tableau报表数据源中用的数据库表
  18. cna12.dll mysql_cna12.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  19. OpenGL 3.0,等得花儿都谢了
  20. Django No module named 'xxx'解决

热门文章

  1. mal是什么类型对应的java类型是什么,【Java】mysql的 int 类型,刨析返回类型为BigDicemal 类型的奇怪现象...
  2. python画图如何调整图例位置_matplotlib中legend位置调整解析
  3. php如何连接mongodb,PHP 连接 MongoDB
  4. java字符串10_十个最常见的Java字符串问题
  5. for循环java_java的这三种for循环有什么区别?
  6. linux日志发送,Linux中将执行过的命令记录到日志并发送到服务器的方法
  7. dw上按钮事件 pb_「React TS3 专题」使用 TS 的方式在类组件里定义事件
  8. sql数组转换为字符串
  9. jquery 获取某个值得键名_jQuery获取元素索引值index()方法
  10. python发展前景怎么样-python发展前景怎么样