java+selenium爬取网站资源并下载到本地
最近在学习java爬虫 写了个爬取网站歌曲的小demo记录一下
public static void main(String[] args) throws InterruptedException, MalformedURLException {
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromeDriverPage/chromedriver.exe"); // 导入selenium驱动
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("headless"); //隐藏窗口 也可以不隐藏 因为是下载 所以就隐藏了
WebDriver webDriver = new ChromeDriver(chromeOptions);
webDriver.get("https://334.kim/"); //打开网站
Thread.sleep(1000); //等待1秒
List<WebElement> elements = webDriver.findElements(By.xpath("//a")); //爬取a标签链接
for (WebElement element : elements) { //循环遍历
String hrefsrc = element.getAttribute("hrefsrc"); //获得a标签链接的hrefsrc属性值
if(hrefsrc!=null){
URL url = new URL(hrefsrc); //获得了音频的路径 用URL打开
InputStream inputStream = null;
try {
inputStream = url.openStream(); //拿到音频输出流
byte[] bytes = IOUtils.toByteArray(inputStream);
File file = new File("src/main/resources/music/" + hrefsrc.split(" ")[1]); //截取文件名称
file.mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file); //写入本地
fileOutputStream.write(bytes);
fileOutputStream.close();
}catch (Exception e){
System.out.println("下载失败");
}
}
}
}