WebDriver driver = new ChromeDriver();
driver.get("http://edition.cnn.com/");
Thread.sleep(4000);
driver.findElement(By.id("search-button")).click();
driver.findElement(By.id("search-input-field")).sendKeys("Sport");
driver.findElement(By.id("submit-button")).click();
List<WebElement> allLinks = driver.findElements(By.className("cd__headline"));
for ( int i=0 ; i<allLinks.size();i++)
{
try {
File file = new File("file path");
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(((WebElement) allLinks.get(i)).getText());
System.out.println(((WebElement) allLinks.get(i)).getText());
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(driver.getTitle());
driver.manage().window().maximize();
} // driver.close();
//driver.quit();
}
프로그래머 여러분 안녕하세요. 웹 페이지에서 데이터를 추출한 다음 txt 파일에 저장하는 프로그램을 만드는 데 문제가 있습니다.
문제는 10 개 중 하나의 헤드 라인 만 얻는다 !!
두 번째 인수로 true를 전달하여 FileWriter를 추가 모드로 전환하십시오.
FileWriter fw = new FileWriter(file.getAbsoluteFile(), true);
또는 다음과 같이 열기 및 닫기 파일을 for 루프 외부로 이동할 수 있습니다.
public static void main(String[]args ) {
WebDriver driver = new ChromeDriver();
driver.get("http://edition.cnn.com/");
Thread.sleep(4000);
driver.findElement(By.id("search-button")).click();
driver.findElement(By.id("search-input-field")).sendKeys("Sport");
driver.findElement(By.id("submit-button")).click();
List<WebElement> allLinks = driver.findElements(By.className("cd__headline"));
try {
File file = new File("file");
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
for ( int i=0 ; i<allLinks.size();i++)
{
bw.write(((WebElement) allLinks.get(i)).getText());
System.out.println(((WebElement) allLinks.get(i)).getText());
}
bw.close();
}
catch (IOException e) {
e.printStackTrace();
}
System.out.println(driver.getTitle());
driver.manage().window().maximize();
} // driver.close();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다