java爬虫入门jsoup入门(简单示例,五分钟)

本文档展示了如何使用Java库Jsoup爬取京东网站上的商品信息,包括设置项目、添加依赖、编写代码抓取商品价格和标题。在解析网页时,通过getElementById和getElementsByTag方法获取特定元素,并利用text()方法提取数据。遇到访问限制时,可能出现空指针异常,此时应检查获取到的document内容。
摘要由CSDN通过智能技术生成

其他链接:

java爬虫(jsoup)实战整合mybatisPlus
https://blog.csdn.net/qq_33745371/article/details/109765252

1. 创建一个java工程

我每次都创建一个springboot工程,不管用不用的上,感觉方便。

2.在pom.xml添加jsoup依赖

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

3.开始写代码了(访问京东的商品)

我先把总代码上了,没几行。上面的import也露出来,别导错。

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

import java.io.IOException;
import java.net.URL;

public class MaiTianTest {
    public static void main(String[] args) throws IOException, InterruptedException {
        String url = "https://search.jd.com/Search?keyword=java";
        Document document = Jsoup.parse(new URL(url), 30000);//获取到了document对象

        Element ele = document.getElementById("J_goodsList");

        Elements elements = ele.getElementsByTag("li");
        for (Element element : elements) {
            //eq(0)--获取当前第一个元素; text()---获取文本
            String price = element.getElementsByClass("p-price").eq(0).text();//书的价格
            String title = element.getElementsByClass("p-name").eq(0).text();//书的标题

            System.out.println("=================");
            System.out.println(price);
            System.out.println(title);
        }
    }
}
(1)创建一个类,我取名叫MaiTianTest(本来想扒他们的公开信息,结果访问太频繁给我禁了)
(2)先写url,这里搜索的是java相关商品
String url = "https://search.jd.com/Search?keyword=java";

在这里插入图片描述

(3)发送请求,获取页面对象–document
Document document = Jsoup.parse(new URL(url), 30000);//获取到了document对象,
//30000代表30000毫秒,如果超过30秒还未返回数据,则中断连接
(4)根据id,获取list

在这里插入图片描述

Element ele = document.getElementById("J_goodsList");//整一页的书籍信息都在这了
//可以输出ele看看是什么内容
(5)获取所有标签为“li”的element对象们

在这里插入图片描述

Elements elements = ele.getElementsByTag("li");//获取所有书籍信息
//可以输出elements看看是什么内容
(6)遍历elements,拿到单个element,获取详细信息(价格,标题等)

在这里插入图片描述
这里我讲一下text()方法------获取标签下的所有文本内容,
假设要获取p标签下的text,那么结果为123456789111

<p>
<a>123</a>
<div>456</div>
789
<div>111</div>
</p>
        for (Element element : elements) {
            //eq(0)--获取当前第一个元素; text()---获取文本
            String price = element.getElementsByClass("p-price").eq(0).text();//书的价格
            String title = element.getElementsByClass("p-name").eq(0).text();//书的标题

            System.out.println("=================");
            System.out.println(price);
            System.out.println(title);
        }
放上输出结果

在这里插入图片描述

如果你报了空指针异常,Exception in thread “main” java.lang.NullPointerException

请输出你的document
Document document = Jsoup.parse(new URL(url), 30000);
System.out.println(document.html());
如果输出的document是这个,说明你被抓住了,https://passport.jd.com/uc/login这是个登陆页面。
<html>
 <head>
  <script>window.location.href='https://passport.jd.com/uc/login'</script>
 </head>
 <body></body>
</html>
您好!对于使用Java编写网络爬虫,我们可以使用Jsoup库来进行HTML解析和数据抓取。 首先,您需要在项目中引入Jsoup库。您可以在Maven或Gradle构建工具中添加以下依赖项: Maven: ```xml <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version> </dependency> ``` Gradle: ```groovy implementation 'org.jsoup:jsoup:1.13.1' ``` 接下来,您可以使用Jsoup来获取和解析网页内容。以下是一个简单示例代码,演示如何使用Jsoup来爬取网页并提取所需的数据: ```java 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 WebCrawler { public static void main(String[] args) { try { // 使用Jsoup连接到目标网页 Document document = Jsoup.connect("http://example.com").get(); // 使用CSS选择器提取所需的元素 Elements links = document.select("a[href]"); // 遍历并打印提取到的元素 for (Element link : links) { System.out.println("Link: " + link.attr("href")); System.out.println("Text: " + link.text()); } } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的示例中,我们使用`Jsoup.connect()`方法连接到目标网页,并使用`document.select()`方法使用CSS选择器提取所有带有`href`属性的链接元素。然后,我们遍历这些链接元素,并打印出链接的URL和文本。 您可以根据自己的需求进一步扩展和修改代码来满足特定的爬虫需求。请注意,在编写爬虫时,请遵守相关网站的使用条款和政策,以避免违反规定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qiweilong123456

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值