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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其他链接:

java爬虫(jsoup)实战整合mybatisPlus
https://blog.youkuaiyun.com/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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qiweilong123456

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

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

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

打赏作者

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

抵扣说明:

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

余额充值