首页 > 编程语言 >Java访问网页获取返回内容

Java访问网页获取返回内容

时间:2025-01-20 09:55:54浏览次数:1  
标签:info 网页 log selenium driver 访问 new Java edgeOptions

前言

需要一直关注网站有没有出成绩结果,一直盯着好麻烦的说
既然是程序员,应该可以做个定时任务代劳吧

代码

使用的是selenium
SpringBoot环境,JDK17
这只是一个简陋版,做出来不需要太多代码

pom.xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

<!-- 依赖可以在父类里找到 -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-edge-driver</artifactId>
        </dependency>

Java

    private static final AtomicBoolean OK_RESULT = new AtomicBoolean(false);

    @Scheduled(cron = "0/30 * * * * ? ")
    pubilc void watchHtml(){

        if (OK_RESULT.get()){
            log.info("快去看看,已经出现变化啦!!!!!!");
        }
        String url = "https://www.baidu.com";
        EdgeOptions edgeOptions = new EdgeOptions();
        edgeOptions.addArguments("--headless");  // 启动无头模式
        edgeOptions.addArguments("--disable-gpu");  // 禁用 GPU(通常在无头模式下启用)
        WebDriver driver = new EdgeDriver(edgeOptions);
        try {
            driver.get(url);
            //睡一下,以让网页执行完毕JS
            Thread.sleep(3000);
            String pageSource = driver.getPageSource();
            log.info(pageSource);
//            JavascriptExecutor  js = (JavascriptExecutor) driver;
//            String finalHtml = (String) js.executeScript("return document.documentElement.outerHTML");
//            log.info(finalHtml);

            if (!pageSource.contains("当前无正在进行的考试阶段")){
                log.info("出现变化!!有内容了!!!");
                OK_RESULT.set(true);
            }
        }catch (Exception e){
            throw new RuntimeException(e);
        }finally {
            driver.quit();
        }

    }

标签:info,网页,log,selenium,driver,访问,new,Java,edgeOptions
From: https://www.cnblogs.com/lazykingloveu/p/18680815

相关文章

  • 高级java每日一道面试题-2025年01月20日-数据库篇-并发事务带来哪些问题?
    如果有遗漏,评论区告诉我进行补充面试官:并发事务带来哪些问题?我回答:并发事务带来的主要问题在多用户环境中,多个事务可能同时对数据库进行读写操作,这可能导致以下几种常见的并发问题:1.脏读(DirtyRead)定义:当一个事务能够读取到另一个未提交事务的数据修改时,称为......
  • 初始JavaEE篇 —— 快速上手 SpringBoot
    找往期文章包括但不限于本期文章中不懂的知识点:个人主页:我要学编程程(ಥ_ಥ)-CSDN博客所属专栏:JavaEE目录SpringBoot相关介绍与解惑 SpringBoot项目的创建 通过官方提供的网页来创建通过IDEA来创建SpringBoot项目的介绍pom.xml文件项目目录介绍第一个Hel......
  • IntelliJ IDEA 2024.3 Java开发工具
    IntelliJIDEA2024.3Java开发工具JetBrainsIntelliJIDEA2024mac,是一款Java开发工具,IntelliJIDEA凭借无与伦比的Java和Kotlin支持脱颖而出。从一开始就支持尖IDEA2024.3中文版开发工具端语言功能,保持领先地位。IntelliJIDEA对您的代码了如指掌,利用这些知识在每个......
  • ElasticSearch Java 使用
    目录创建工程,导入坐标创建索引index创建映射mapping建立文档document建立文档(通过XContentBuilder)建立文档(使用Jackson转换实体)1)添加jackson坐标2)创建Article实体3)代码实现查询文档操作关键词查询字符串查询使用文档ID查询文档查询文档分页操作批量插入数据分页查询查询......
  • JavaScript 操作符与表达式
    Hi,我是布兰妮甜,编写流畅、愉悦用户体验的程序员。JavaScript是一种功能强大且灵活的编程语言,广泛应用于前端和后端开发。它提供了一系列丰富的操作符和表达式来处理数据、执行逻辑判断以及控制程序流程。理解这些概念对于编写高效、可读性强的代码至关重要。下面将详细......
  • java学习总结(五)继承、重载、重写、多态
    一、继承继承:你继承谁你就是谁,继承是一种严格的父子关系(在父类里面抽取的属性和方法一定是所有子类所共有)(Student继承Person,那么Student就是人)//使用继承的好处可以把多个子类中重复的代码抽取到父类中,提高代码的复用性子类可以在父类的基础上,增加其他功能,使子类更强大......
  • 高级java每日一道面试题-2025年01月19日-框架篇[Mybatis篇]-MyBatis 中见过什么设计模
    如果有遗漏,评论区告诉我进行补充面试官:MyBatis中见过什么设计模式?我回答:1.工厂模式(FactoryPattern)定义:工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式,将对象创建过程抽象化,从而提高代码的可维护性和灵活性。在MyBatis中的应用:SqlSessionFactoryBui......
  • Java中的算法优化与复杂度分析
    1.算法优化的重要性在Java开发中,算法优化至关重要。高效的算法不仅可以提升程序运行速度,还能降低资源消耗,改善用户体验。优化算法需要综合考虑时间复杂度和空间复杂度,以找到最佳的解决方案。2.时间复杂度时间复杂度表示算法运行时间随输入规模变化的增长率。常见的时间复杂度......
  • Java开发史上10位牛人
    在Java的发展历程中,确实涌现出了众多杰出的人物,他们各自在Java的不同领域做出了卓越的贡献。以下是Java中的十大关键人物:‌JamesGosling(Java之父)‌加拿大计算机科学家,Java编程语言的最初设计者、实现者。在SunMicrosystems(现为OracleCorporation的一部分)工作期间,领导了Ja......
  • 虚拟主机绑定域名后仍无法访问首页
    将域名绑定到虚拟主机后,尝试通过域名访问首页时,提示“无效”或无法找到默认首页文件。即使域名实名认证已完成,仍然无法正常访问。解决方案:步骤描述确认域名解析确保域名已正确解析到虚拟主机的IP地址,并且DNS记录已生效。通常需要等待一段时间(如24-48小时)以确保DNS更改......