1. Jsoupの概要
1.1. はじめに
jsoup は、URL アドレスと HTML テキスト コンテンツを直接解析できる Java HTML パーサーです。非常に省力的な API を提供します。
データは、DOM、CSS、および jQuery と同様の操作を通じて取得および操作できます。
1.2. Jsoupの主な機能
1) URL、ファイル、または文字列から HTML を解析する
2) DOM または CSS セレクターを使用してデータを検索および取得する
3) 操作可能なHTML要素、属性、テキスト
注: jsoup は MIT プロトコルに基づいてリリースされており、商用プロジェクトで安心して使用できます。
Jsoupを使ってBaiduのデータと画像をキャプチャし、コードを添付してみましょう
付属maven <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.7.3</version> </dependency>
private static String url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=互联网";
public static void main(String[] args) throws Exception {
//链接到目标地址
Connection connect = Jsoup.connect(url);
//设置useragent,设置超时时间,并以get请求方式请求服务器
Document document = connect.userAgent("Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)").timeout(6000).ignoreContentType(true).get();
Thread.sleep(1000);
//获取指定标签的数据
Element elementById = document.getElementById("content_left");
//输出文本数据
// System.out.println(elementById.text());
//输出html数据
// System.out.println(elementById.html());
//获取所有图片链接
Elements imgtag = document.getElementsByTag("img");
for (int i = 0; i < imgtag.size(); i++) {
if (StringUtils.isNotEmpty(imgtag.get(i).attr("src"))&&imgtag.get(i).attr("src").startsWith("http")) {
System.out.println(imgtag.get(i).attr("src"));
}
}
}
正常にクロールされました
ここでは jsoup の基本的な機能を紹介しましたが、jsoup は優れた拡張性を備えた API 設計により、セレクターの定義を通じて非常に強力な HTML 解析関数を開発できます。また、jsoup プロジェクト自体の開発も活発なので、Java を使用していて HTML の処理が必要な場合は、試してみるとよいでしょう。