专业的JAVA编程教程与资源

网站首页 > java教程 正文

如何用JAVA 写一个简单爬虫(java爬虫入门教程)

temp10 2024-09-09 08:28:54 java教程 16 ℃ 0 评论

为了编写一个Java爬虫,你需要了解以下几个步骤:

  1. 首先,你需要确定你要抓取的网站。可以从浏览器中复制网站的URL并粘贴到你的Java代码中。
  2. 接下来,你需要使用Java的网络编程API连接到该网站。你可以使用URLConnection或HttpClient等库。
  3. 一旦你建立了一个连接,你就可以开始读取网页内容。你可以使用Java的IO库读取网页。
  4. 在读取网页内容之后,你需要解析网页以提取所需的信息。这可以使用Java的解析器,如Jsoup或XML解析器。
  5. 最后,你需要存储或使用所提取的信息。你可以将信息保存到数据库中,将其输出到文件中,或将其用于其他用途。

下面是一个基本的Java爬虫代码示例,它使用Jsoup解析器和URLConnection库连接到目标网站并提取标题和链接信息:

如何用JAVA 写一个简单爬虫(java爬虫入门教程)

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Scanner;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class SimpleWebCrawler {
  
  public static void main(String[] args) {
    String url = "https://www.example.com/";
    try {
      URLConnection conn = new URL(url).openConnection();
      conn.addRequestProperty("User-Agent", "Mozilla/5.0");
      Scanner scanner = new Scanner(conn.getInputStream());
      String html = scanner.useDelimiter("\\Z").next();
      scanner.close();
      Document doc = Jsoup.parse(html);
      Elements links = doc.select("a[href]");
      for (Element link : links) {
        System.out.println(link.attr("href") + " - " + link.text());
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Jsoup

Jsoup是一款用于解析HTML和XML文档的Java库。它提供了类似于jQuery的语法来操作文档,使得解析和处理文档变得非常简单。

以下是Jsoup解析器的一些常用功能:

  1. 解析HTML文档:使用Jsoup可以轻松解析HTML文档,并且可以处理各种标签、属性、文本内容等。
  2. 获取元素:可以使用类似于jQuery的选择器语法来获取HTML文档中的元素,例如获取所有的链接、图片等。
  3. 修改元素:可以使用Jsoup修改HTML文档中的元素,例如修改元素的属性、添加或删除元素等。
  4. 过滤HTML文档:可以使用Jsoup过滤HTML文档中的不必要的元素,例如过滤掉广告、统计代码等。
  5. 处理字符编码:可以使用Jsoup来处理HTML文档中的字符编码,例如将文档中的ISO-8859-1编码转换为UTF-8编码等。
  6. 支持HTTPS:Jsoup还支持使用HTTPS协议获取HTML文档,可以使用它来爬取一些需要登录才能访问的网站。

总之,Jsoup是一款非常实用的HTML和XML解析器,可以帮助Java开发者快速、简单地解析和处理HTML文档,使得爬虫开发变得更加容易。

Jsoup的使用

使用Jsoup解析器需要先将其添加到项目的依赖中。可以通过Maven或者Gradle来添加依赖。

例如,使用Maven添加Jsoup的依赖:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.3</version>
</dependency>

添加依赖之后,就可以在Java代码中使用Jsoup了。以下是使用Jsoup解析器获取HTML文档中所有链接的示例代码:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupExample {
    public static void main(String[] args) {
        String html = "<html><head><title>Jsoup Example</title></head>"
                + "<body><p>Jsoup is a Java library for working with real-world HTML.</p>"
                + "<a href=\"http://example.com\">Example</a></body></html>";

        Document doc = Jsoup.parse(html); // 将HTML字符串解析为文档对象

        Elements links = doc.select("a"); // 获取所有的链接元素

        for (Element link : links) {
            String href = link.attr("href"); // 获取链接的URL地址
            String text = link.text(); // 获取链接的文本内容
            System.out.println(href + ": " + text);
        }
    }
}

以上代码使用Jsoup将HTML字符串解析为文档对象,然后使用选择器语法获取所有的链接元素,并输出它们的URL地址和文本内容。

除此之外,Jsoup还有很多其他的功能,例如修改元素、过滤HTML文档等等,可以根据具体需求灵活运用。

Jsoup 解析器的常见功能和代码片段示例

1.获取网页的 Title:

Document doc = Jsoup.connect("http://example.com/").get();
String title = doc.title();

2.获取指定标签的文本内容:

Element element = doc.select("div.content").first();
String text = element.text();

3.获取指定属性的值:

Element element = doc.select("img").first();
String src = element.attr("src");

4.过滤 HTML 标签:

String html = "<p>这是一段 <b>加粗</b> 的文本。</p>";
String text = Jsoup.parse(html).text();

5.修改 HTML 内容:

Element element = doc.select("div.content").first();
element.append("<p>这是新增的文本内容。</p>");

6.提取网页中的链接:

Elements links = doc.select("a[href]");
for (Element link : links) {
    String href = link.attr("href");
    System.out.println(href);
}

7.提取网页中的图片:

Elements imgs = doc.select("img[src~=(?i)\\.(png|jpe?g|gif)]");
for (Element img : imgs) {
    String src = img.attr("src");
    System.out.println(src);
}

这些只是 Jsoup 解析器的常见用法之一。Jsoup 还有更多的功能,如解析 XML、处理表单、处理 Cookie 等,大家可以自己去了解!

有不足之处大家也可以在评论区指出!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表