Java爬虫入门:如何用Java抓取网页数据

7,094次阅读
没有评论

共计 1904 个字符,预计需要花费 5 分钟才能阅读完成。

一级烧烤品鉴师
2023-07-09 09:30:00
浏览数 (2705)

爬虫是什么?

爬虫,也叫网络爬虫或网页抓取,是一种自动从互联网上获取信息的程序或者脚本。爬虫可以根据一定的规则,模拟浏览器的行为,访问指定的网站,抓取网页上的数据,并进行存储或分析。

Java 可以写爬虫吗?

Java 是一种广泛使用的编程语言,具有跨平台、面向对象、高性能等特点。Java 也可以用来编写爬虫程序,因为 Java 提供了很多网络编程和数据处理的类库,例如 HttpURLConnection, Jsoup, HttpClient 等。使用这些类库,可以方便地发送 HTTP 请求,解析 HTML 文档,提取所需的数据。

Java 爬虫案例

下面给出一个简单的 Java 爬虫案例,用来抓取百度搜索结果的标题和链接。首先,我们需要导入以下几个类库:

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

然后,我们定义一个方法,用来发送 HTTP 请求,并返回响应的 HTML 文档:

public static Document getHtml(String url) throws IOException {
    // 创建一个 URL 对象
    URL u = new URL(url);
    // 打开一个 HTTP 连接
    HttpURLConnection conn = (HttpURLConnection) u.openConnection();
    // 设置请求方法为 GET
    conn.setRequestMethod("GET");
    // 设置连接超时和读取超时时间
    conn.setConnectTimeout(5000);
    conn.setReadTimeout(5000);
    // 判断响应码是否为 200
    if (conn.getResponseCode() == 200) {
        // 使用 Jsoup 解析 HTML 文档
        Document doc = Jsoup.parse(conn.getInputStream(), "utf-8", url);
        // 关闭连接
        conn.disconnect();
        // 返回文档对象
        return doc;
    } else {
        // 抛出异常
        throw new IOException("请求失败,响应码为" + conn.getResponseCode());
    }
}

接下来,我们定义一个方法,用来从 HTML 文档中提取搜索结果的标题和链接:

public static void parseHtml(Document doc) {
    // 选择所有包含搜索结果的 div 元素
    Elements results = doc.select("div.result");
    // 遍历每个 div 元素
    for (Element result : results) {
        // 选择标题中的 a 元素
        Element title = result.selectFirst("h3 a");
        // 获取标题文本和链接地址
        String text = title.text();
        String link = title.attr("href");
        // 打印标题和链接
        System.out.println(text);
        System.out.println(link);
    }
}

最后,我们定义一个主方法,用来调用上面的两个方法,并传入一个搜索关键词:

public static void main(String[] args) throws IOException {
    // 定义一个搜索关键词
    String keyword = "java";
    // 拼接百度搜索的 URL 地址
    String url = "https://www.baidu.com/s?wd=" + keyword;
    // 调用 getHtml 方法,获取 HTML 文档对象
    Document doc = getHtml(url);
    // 调用 parseHtml 方法,解析 HTML 文档,并打印搜索结果
    parseHtml(doc);
}

小结

很多人一听到爬虫第一反应就是 python,beautifulsoup 等,固执地认为爬虫就应该学 python。但实际上爬虫可以用其他语言实现,比如本文提到的 java,甚至可以使用 C /C++ 去实现。一些技术并不是只有某些语言能特定实现,只不过 python 实现更易于被人接受而已。希望本文能给你带来一个全新的视角,不再局限于使用 python 编写爬虫!

原文地址: Java 爬虫入门:如何用 Java 抓取网页数据

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-20发表,共计1904字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)