网页上爬取数据(Java版)通俗易懂

学习目标:

当我们需要获取一些网络上的资源时,爬虫成了一种不可获取的技术,但是各大网站基本都限制通过接口来获取,本文将手把手教大家如何通过网页来获取我们想要的资源(仅供学习使用),一招学会,天下无敌!

  • 通过网页jsoup爬取我们想要的内容,这里以爬取XX信息为例

学习内容:

1.引入相关pom

        <!--解析网页Jsoup-->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.10.2</version>
        </dependency>

2.寻找自己要爬取网址的标签

2.1 因为涉及隐私,地址我就不展示了,用(xxx代替),有需要详细查看的关注公众号
2.2 打开F12,找到自己需要的字段
在这里插入图片描述

3.编码阶段


		String url = "xxx" + keyWord;

        url = URLDecoder.decode(url, StandardCharsets.UTF_8);
        //Document document = Jsoup.parse(new URL(url), 30000);

        //模拟浏览器访问,防止阻止跳到登录页面
        Connection mozilla = Jsoup.connect(url).userAgent("Mozilla");
        Document document = mozilla.get();

        Element element = document.body();

        Element j_goodsList = element.getElementById("J_goodsList");

        //Elements lis = j_goodsList.getElementsByTag("li");
        Elements lis = j_goodsList.getElementsByClass("gl-item");

        List<Content> list = new ArrayList<>();
        for (Element li : lis) {
            String price = li.getElementsByClass("p-price").eq(0).text();
            String name = li.getElementsByClass("p-name").eq(0).text();
            String img = li.getElementsByTag("img").eq(0).attr("data-lazy-img");//懒加载在在这里,初始化并不是在stc属性里
            // String img = li.getElementsByTag("img").eq(0).attr("src");
            list.add(new Content(name, img, price));
        }

4. 结果

在这里插入图片描述

全部源码见公众号获取回复“Java网页爬虫”即可

关注公众号,随时学习最新内容,并与博主零距离交流!
在这里插入图片描述

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java面经是指在面试过程中常被问到的与Java相关的问题和知识点。下面是一些常见的Java面经问题及其解答: 1. Java的特点是什么? Java是一种面向对象的编程语言,具有跨平台性、简单性、可靠性、安全性和高性能等特点。 2. 什么是Java虚拟机(JVM)? JVM是Java程序运行的环境,它负责将Java源代码编译成字节码,并在不同的操作系统上执行。 3. 什么是面向对象编程(OOP)? 面向对象编程是一种编程范式,它将数据和操作数据的方法封装在一起,通过创建对象来实现程序的功能。 4. Java中的四种访问修饰符分别是什么? Java中的四种访问修饰符分别是public、protected、default和private,用于控制类、方法和变量的访问权限。 5. 什么是Java中的异常处理机制? 异常处理机制是Java中用于处理程序运行过程中出现的异常情况的一种机制,通过try-catch-finally语句块来捕获和处理异常。 6. 什么是Java中的多线程? 多线程是指在一个程序中同时执行多个线程,每个线程都可以独立执行不同的任务,提高程序的并发性和效率。 7. 什么是Java中的集合框架? 集合框架是Java中用于存储和操作一组对象的类库,包括List、Set、Map等常用的数据结构和算法。 8. 什么是Java中的反射机制? 反射机制是指在运行时动态地获取和操作类的信息,可以通过反射来创建对象、调用方法和访问属性等。 9. 什么是Java中的IO流? IO流是Java中用于输入和输出数据的一种机制,包括字节流和字符流,用于读取和写入文件、网络等数据源。 10. 什么是Java中的设计模式? 设计模式是一种解决常见软件设计问题的经验总结,包括单例模式、工厂模式、观察者模式等常用的设计模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旋律~学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值