java+selnium爬取凡人修仙传

这篇博客介绍了如何利用Java和Selenium Webdriver爬取网络小说《凡人修仙传》的内容。作者通过示例代码展示了如何定位章节链接、切换页面以及验证页面内容,实现了对小说的连续两章的抓取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近无聊,就用java爬了下凡人修仙传的内容,具体不多说,看代码图
package testNG;
//连续两章读取 根据xpath中
//根据参数读取

import static org.junit.Assert.assertTrue;

import java.sql.Driver;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class NewTest {
WebDriver driver;

public void begin() {
// 第一个页面
driver.findElement(By.id(“kw”)).sendKeys(“凡人修仙传”);
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
driver.findElement(By.id(“su”)).click();
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
driver.findElement(By.xpath("//[@id=‘7’]/h3/a")).click();
/

WebElement zhang=driver.findElement(By.xpath("//*[@id=‘list’]/dl/dd"));
System.out.println(zhang);
for (WebElement a: zhang){
System.out.println(a.getAttribute(“href”));//获取标签路径

  }
  */

}

public static int pageone=500;

public static int pagetwo=501;
// int array[]=[];
public void one(){
begin();
// 第二个页面
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
// 转换窗口
tiaozhuan();
// 与当前页面作比较 是 就跳过执行
driver.findElement(By.xpath("//*[@id=‘list’]/dl/dd["+pageone+"]/a")).click();
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);

// 获取页面源代码 断言出现文字
String b=driver.getPageSource();
assertTrue(b.contains(“修真小说”));
// 跳转页面
WebElement a=driver.findElement(By.id(“content”));
System.out.println(a.getText());

}

@Test
public void two(){
one();
// 跳转第一个界面
driver.findElement(By.xpath("//[@id=‘wrapper’]/div[4]/div/div[1]/a[3]")).click();
// tiaozhuan();
driver.findElement(By.xpath("//
[@id=‘list’]/dl/dd["+pagetwo+"]/a")).click();

  driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);

// 转换窗口
//tiaozhuan();
// 与当前页面作比较 是 就跳过执行
//driver.findElement(By.xpath("//*[@id=‘list’]/dl/dd[1]/a")).click();
//driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);

// 获取页面源代码 断言出现文字
String b=driver.getPageSource();
assertTrue(b.contains(“修真小说”));
// 跳转页面
WebElement a=driver.findElement(By.id(“content”));
System.out.println(a.getText());

}

@BeforeMethod
public void beforeMethod() {
System.setProperty(“webdirver.chrome.driver”, “C://chromedriver.exe”);
driver=new ChromeDriver();
driver.get(“http://www.baidu.com”);

}

@AfterMethod
public void afterMethod() {
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
driver.quit();
}

public void tiaozhuan(){
String handle=driver.getWindowHandle();
for(String handles :driver.getWindowHandles()){
if(handles.equals(handle)){
continue;
}
driver.switchTo().window(handles);
}
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值