Рубрики
Без рубрики

синтаксический анализатор HTML jsoup примеры hello world

– jsoup HTML парсер привет мир примеры

Jsoup , синтаксический анализатор HTML, его синтаксис селектора “jquery-подобный” и “регулярное выражение” очень прост в использовании и достаточно гибок, чтобы получить все, что вы хотите. Ниже приведены три примера, показывающие, как использовать Jsoup для получения ссылок, изображений, заголовка страницы и содержимого элемента “div” с HTML-страницы.

Скачать jsoup Суп доступен в центральном хранилище Maven. Для пользователей, не являющихся Maven, просто загрузите его с веб-сайта jsoup .

        
            org.jsoup
            jsoup
            1.10.2
        

1. Захватывает Все Гиперссылки

В этом примере показано, как использовать jsoup для получения заголовка страницы и захвата всех ссылок из “google.com “.

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();
        }

    }

}

Выход

title : Google

link : http://www.google.com.my/imghp?hl=en&tab=wi
text : Images

link : http://maps.google.com.my/maps?hl=en&tab=wl
text : Maps

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

2. Захватывает Все Изображения

Во втором примере показано, как использовать селектор регулярных выражений Jsoup для захвата всех файлов изображений (png, jpg, gif) из “yahoo.com “.

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();
        }

    }

}

Выход

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. Получить мета-элементы

Последний пример имитирует автономную HTML-страницу и использует jsoup для анализа содержимого. Он захватывает ключевое слово и описание ” meta “, а также элемент div с идентификатором “цвет”.

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("
");
        html.append("");
        html.append("");
        html.append("");
        html.append("Hollywood Life");
        html.append("");
        html.append("");
        html.append("");
        html.append("");
        html.append("
This is red
/>"); html.append(""); html.append(""); 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); } }

Выход

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

4. Захватывает Входные данные Формы

В этих фрагментах кода показано, как использовать Jsoup для захвата входных данных HTML-формы (имя и значение). Для получения подробной информации об использовании, пожалуйста, обратитесь к этому автоматизируйте вход на веб-сайт с помощью 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 paramList = new ArrayList();
	for (Element inputElement : inputElements) {
		String key = inputElement.attr("name");
		String value = inputElement.attr("value");
	}
 
}

5. Получить значок

Этот код показывает, как использовать значок Jsoup для избранного на странице.

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.append("");
	html.append("");		
	//html.append("");
	html.append("");
	html.append("");
	html.append("something");
	html.append("");
	html.append("");

	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);
  }

}

Выход

http://example.com/image.ico

Рекомендации

Оригинал: “https://mkyong.com/java/jsoup-html-parser-hello-world-examples/”