一、爬虫工具
-
selenium
是一个模拟浏览器操作的工具,背后有google 维护源代码,支持全部主流浏览器,支持主流的编程语言,包括:java,Python,C#,PHP,Ruby,等,在本项目上使用的Java语言。
官网:https://www.selenium.dev/documentation/
-
ChromeDriver
使用selenium是需要浏览器的配合, chromeDriver,是谷歌浏览器的一个驱动, selenium借助chromeDriver,实现模拟对浏览器的各种操作。·
二、环境搭建
1、下载chromeDriver
http://chromedriver.storage.googleapis.com/index.html
 {
//加载谷歌浏览器驱动
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();
}
//设置访问地址
String url = "https://www.baidu.com/";
chromeDriver.get(url);
//在id为kw的输入框当中输入内容
WebElement kw = chromeDriver.findElement(By.id("kw"));
kw.sendKeys("王者荣耀");
//在id为su的按钮上点击
WebElement su = chromeDriver.findElement(By.id("su"));
su.click();
try {
//设置等待
chromeDriver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}catch (Exception e){
e.printStackTrace();
}
//找到搜索后左边的内容
WebElement content_left = chromeDriver.findElement(By.id("content_left"));
List<WebElement> elements = content_left.findElements(By.cssSelector(".c-container"));
//遍历出来需要的元素和内容
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();
}
}
运行成功