一、爬蟲(chóng)工具
-
selenium
是一個(gè)模擬瀏覽器操作的工具,背后有g(shù)oogle 維護(hù)源代碼,支持全部主流瀏覽器,支持主流的編程語(yǔ)言,包括:java,Python,C#,PHP,Ruby,等,在本項(xiàng)目上使用的Java語(yǔ)言。
官網(wǎng):https://www.selenium.dev/documentation/ -
ChromeDriver
使用selenium是需要瀏覽器的配合, chromeDriver,是谷歌瀏覽器的一個(gè)驅(qū)動(dòng), selenium借助chromeDriver,實(shí)現(xiàn)模擬對(duì)瀏覽器的各種操作?!?/p>
二、環(huán)境搭建
1、下載chromeDriver
http://chromedriver.storage.googleapis.com/index.html
下載的驅(qū)動(dòng)要和自己安裝的谷歌瀏覽器版本相互匹配
解壓以后找個(gè)位置放一下
2、創(chuàng)建idea項(xiàng)目
3、導(dǎo)入maven依賴(lài)
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
4、編寫(xiě)測(cè)試類(lèi)
三、運(yùn)行案例
案例:百度搜索王者榮耀,
將搜索出的內(nèi)容列表保存成excel文件,
內(nèi)容主要包含內(nèi)容名稱(chēng)和url文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-787918.html
package com.xw;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class Test {
public static void main(String[] args) {
//加載谷歌瀏覽器驅(qū)動(dòng)
System.getProperties().setProperty("webdriver.chrome.driver","D:\\ProgramSoftware\\chromedriver_win32\\chromedriver_win32 (2)\\chromedriver.exe");
ChromeDriver chromeDriver = new ChromeDriver();
try {
Thread.sleep(3000);
}catch (Exception e){
e.printStackTrace();
}
//設(shè)置訪問(wèn)地址
String url = "https://www.baidu.com/";
chromeDriver.get(url);
//在id為kw的輸入框當(dāng)中輸入內(nèi)容
WebElement kw = chromeDriver.findElement(By.id("kw"));
kw.sendKeys("王者榮耀");
//在id為su的按鈕上點(diǎn)擊
WebElement su = chromeDriver.findElement(By.id("su"));
su.click();
try {
//設(shè)置等待
chromeDriver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}catch (Exception e){
e.printStackTrace();
}
//找到搜索后左邊的內(nèi)容
WebElement content_left = chromeDriver.findElement(By.id("content_left"));
List<WebElement> elements = content_left.findElements(By.cssSelector(".c-container"));
//遍歷出來(lái)需要的元素和內(nèi)容
for (WebElement page : elements) {
WebElement h3_a = page.findElement(By.cssSelector("h3 a"));
String text = h3_a.getText();
String href = h3_a.getAttribute("href");
System.out.println(text);
System.out.println(href);
WebElement a = page.findElement(By.cssSelector("a"));
String hrefa = a.getAttribute("href");
System.out.println(hrefa);
}
try {
Thread.sleep(5000);
}catch (Exception e){
e.printStackTrace();
}
chromeDriver.quit();
}
}
運(yùn)行成功文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-787918.html
到了這里,關(guān)于Java爬蟲(chóng)Selenium+Java+ChromeDriver【抓取百度信息】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!