【Jsoup】Java 爬虫 - Jsoup的简单使用

【Jsoup】Java 爬虫 - Jsoup的简单使用

前言

最近在写爬虫玩,爬虫写完后整理了如下笔记,以后说不定用到上。

其实java.net包下的也可以用,但是为了简单,而且有封装好的Jsoup库库用,效率更高。

一、工具

1.Jsoup

jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.

jsoup是一个用于处理实际HTML的Java库。它使用HTML5最佳DOM方法和CSS选择器,为获取URL以及提取和处理数据提供了非常方便的API。

简单来说,Jsoup就是用于处理HTML文档的Java库,爬取网页处理时,需要一点CSS选择器的知识。

官网:https://jsoup.org/

中文网:https://www.open-open.com/jsoup/

二、Jsoup的简单使用

1.解析(parse方法)

下面代码使用Jsoup解析了html代码(需要导入jar包或maven依赖)。

        String html = "<html><head><title>First parse</title></head><body><p>Parsed HTML into a doc.</p></body></html>";
        // 解析html
        Document doc = Jsoup.parse(html);
        System.out.println(doc);

2.连接(connect方法)

链接指定url并获取文档。

        String url = "https://voice.hupu.com/nba";
        // 连接并获取html文档
        Document doc = Jsoup.connect(url).get();
        System.out.println(doc);

3.案例

使用jsoup获取虎扑新闻列表页

        String url = "https://voice.hupu.com/nba";
        // 连接并获取html文档
        Document doc = Jsoup.connect(url).get();
        System.out.println(doc);
        // 使用CSS选择获取元素
        Elements es = doc.select("div.news-list > ul > li > div.list-hd > h4 > a");
        for (Element e : es) {
            // 获取链接href与标题文本
            System.out.println(e.attr("href") + " - " + e.text());
        }

4.小技巧

如果遇到网站使用的是 AJAX 进行数据获取的,可以尝试直接查找数据接口,然后直接从接口中获取数据。

我是参考这篇的:https://zhuanlan.zhihu.com/p/85861609