首页 > 编程语言 >JAVA爬虫使用Selenium自动翻页

JAVA爬虫使用Selenium自动翻页

时间:2024-05-15 09:41:39浏览次数:12  
标签:JAVA 翻页 Selenium selenium jsoup org import openqa driver

关于Maven
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
JDK 1.8

114版本以前可以通过下面的下载地址进行下载:http://chromedriver.storage.googleapis.com/index.html

在官网上可以看到,从M115开始放在了 https://googlechromelabs.github.io/chrome-for-testing/

电脑浏览器版本要对应 124开头就124的

代码实现 下面是一秒触底一次

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

import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public static void main(String[] args) {
// 设置ChromeDriver的路径
System.setProperty("webdriver.chrome.driver", "/Users/mac/workspace/chromedriver-mac-x64124/chromedriver");

// 初始化Chrome浏览器实例
ChromeOptions options = new ChromeOptions();
WebDriver driver = new ChromeDriver(options);

// 打开目标网页
driver.get("https://www.dongchedi.com/auto/library/x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x");

// 模拟滚动操作,这里我们直接滚动到页面底部
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");

// 等待加载完成,可以通过检查某些元素的出现来判断
// WebElement loadingMore = driver.findElement(By.id("loading-more"));
// while (loadingMore.isDisplayed()) {
int a = 0;
while (true) {
// 执行加载更多的操作
// loadingMore.click();

// 等待一会儿,让加载动作完成
try {
Thread.sleep(1000);
// 再次滚动到底部
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
if (a > 10) {
break;
} else {
a++;
}
} catch (InterruptedException e) {
e.printStackTrace();
}


}

// 解析页面HTML
String pageSource = driver.getPageSource();
Document doc = Jsoup.parse(pageSource);
System.out.println("解析。。。。。。");
// 处理doc中的内容
System.out.println(doc.title());

// 关闭浏览器
driver.quit();
}

 

标签:JAVA,翻页,Selenium,selenium,jsoup,org,import,openqa,driver
From: https://www.cnblogs.com/michaelcnblogs/p/18193168

相关文章

  • 面试题-JAVA基础
    JAVA有几种基本数据类型,各种类型占用字节大小?64位JVM中,int的长度是多数?Java的Integer缓存池大小是多少?Java中应该使用什么数据类型来描述价格?什么是装箱和拆箱?Java中的值传递和引用传递有什么区别?java8和java9的String类型的区别String,StringBuilder,StringBuffer区别......
  • 【JavaWeb】前后端分离SpringBoot项目快速排错指南
    1发起业务请求打开浏览器开发者工具,同时显示网络(Internet)和控制台(console)接着,清空控制台和网络的内容,如下图然后,点击你的业务按钮,发起请求。首先看控制台有没有报错信息,这是最直观的,看不懂英文就去翻译一下,百度一下如果控制台的信息并没有什么价值,或者指明是后端的问题,那么......
  • java poi之XWPFDocument读取word内容并创建新的word(获取表格所有图片)
    Poi的Word文档结构介绍1、poi之word文档结构介绍之正文段落一个文档包含多个段落,一个段落包含多个Runs,一个Runs包含多个Run,Run是文档的最小单元获取所有段落:Listparagraphs=word.getParagraphs();获取一个段落中的所有Runs:ListxwpfRuns=xwpfParagraph.getRuns();获取......
  • Java面试题 - Java基础
    参考教程【本文参考自以下文章,部分图片及代码片段也取自以下文章,如果构成侵权,请联系我进行修改/删除】【如果构成侵权,请联系我进行修改/删除】【如果构成侵权,请联系我进行修改/删除】【如果构成侵权,请联系我进行修改/删除】自学精灵-首页(本文几乎所有的内容都是自学精灵上......
  • Java-SSM-Day02 SpringFramework实战指南
    一、技术体系结构总体技术体系1单一架构:一个项目,一个工程,导出为一个war包,在一个Tomcat上运行。也叫allinone。目前主要应用技术框架为:Spring、SpringMVC、Mybatis分布式架构:一个项目(对应IDEA中的一个project),拆分成很多......
  • java代码开发规范
    1、工程结构 工程分为三个module:sdk、biz、api,api依赖bizbiz依赖sdk 1.1、apiapi功能主要是与外部的交互部分,包括向前端提供的接口,向外部提供的RPC服务的实现等。包分类;主要包括的package包括但不限于包名功能描述规范备注api向外部提供的RPC接口实现......
  • 【java】异常 (详解)
     在Java中,将程序执行过程中发生的不正常行为称为异常  比如以下几个异常1.算术异常 因为 0不能当被除数,所以报出了异常,这种异常就叫作算数异常 2.空指针异常  3.数组越界异常   4.在编译时就发现了异常 那有的异常在编译时就被发现,有的要在运行之......
  • wsdl文件生成java客户端
    生成java客户端  公司内部服务使用webservice进行交互,而且对方提供了wsdl文件。我的目标是就是通过wsdl文件,完成双方对接。wsdl文件->java文件wsimport-keep-pcom.wsdl.commonsendImMessage.wsdl.xml-keep表示保留生成的.java文件-p指定生成的Java类的包名  通......
  • java.net.SocketException: Connection reset
    今天在学习socket编程的时候遇到了一个bug:java.net.SocketException:Connectionreset先来看一下自己的代码:服务端:publicclassServerSocketDemo{publicstaticvoidmain(String[]args){try{//建立一个ServerSocketServerS......
  • Playwright执行 JavaScript 脚本:探索浏览器自动化的新境界
    前言我们在进行web自动化时,经常遇到一些不好操作的元素,普通的元素定位和操作容易报错,如果我们使用的selenium的话,就可以使用selenium调用js脚本进行操作。在playwright中也有类似的方法,使用page.evaluate()执行JavaScript脚本。page.evaluate()和page.evaluate_handle()之间的......