JAVA爬蟲使用Selenium自動翻頁

独醉笑清风發表於2024-05-15
關於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();
}

相關文章