Es demasiado problemático guardar las imágenes en la página web manualmente, guardo las imágenes directamente en lotes en Java

Hoy, quiero guardar las fórmulas matemáticas en la página web. Es problemático guardar muchas imágenes, así que ... ¡¡¡mira todo el trabajo !!!

Rastreador simple de Java
Conocimiento de uso: clase de URL, flujo de datos, regular, archivo

package blank;

/**
 * @author blank
 */
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Spider {
    
    
	/**
	 * 获取网站内容
	 * 
	 * @param urlStr
	 * @param charset
	 * @return
	 * @throws IOException
	 */
	public static String getURLContent(String urlStr, String charset) throws IOException {
    
    
		URL url = new URL(urlStr);
		BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), Charset.forName(charset)));
		StringBuilder sb = new StringBuilder();
		String temp = "";
		while ((temp = reader.readLine()) != null) {
    
    
			sb.append(temp);
		}
		reader.close();
		return sb.toString();
	}

	/**
	 * 保存图片
	 * 
	 * @param urlStr
	 * @throws IOException
	 */
	public static void savePic(String urlStr, String dirStr) throws IOException {
    
    
		URL url = new URL(urlStr);
		InputStream in = url.openStream();
		String filename = dirStr + urlStr.substring(urlStr.lastIndexOf("/") + 1);
		File dir = new File(dirStr);
		if (!dir.exists()) {
    
    
			dir.mkdirs();
		}
		System.out.println(filename);
		File file = new File(filename);
		if (!file.exists()) {
    
    
			file.createNewFile();
		}
		FileOutputStream fos = new FileOutputStream(file);
		byte[] b = new byte[1024];
		int len;
		while ((len = in.read(b)) != -1) {
    
    
			fos.write(b, 0, len);
		}
		fos.close();
		in.close();
	}

	public static void main(String[] args) throws IOException {
    
    
		// 获取网页
		String urlContent = getURLContent("http://video.kaola100.com/yhcy/yhff/12322", "utf-8");
		// 准备正则
		Pattern p = Pattern.compile("<img(.+?)/>");
		// 匹配并处理
		Matcher m = p.matcher(urlContent);
		int count = 0;
		while (m.find()) {
    
    
			String temp = m.group(1);
			temp = "http://video.kaola100.com" + temp.substring(temp.indexOf("\"/") + 1, temp.lastIndexOf("\""));
			System.out.println("下载" + temp + "...");
			savePic(temp, "D:/math/");
			count++;
		}
		System.out.println("共保存" + count + "个图片");
	}
}

Inserte la descripción de la imagen aquí
¡Buen trabajo! ! ! Ejecutar y guardar, pero este código no es universal y el procesamiento de otras páginas web debe modificarse ligeramente, por lo que no lo repetiré aquí ~

Efecto después de correr
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/L333333333/article/details/108762473
Recomendado
Clasificación