Java网页图片爬取:使用Jsoup库抓取并下载图片
可以使用Java的Jsoup库来实现网页图片的爬取。以下是一个简单的示例代码:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
public class ImageCrawler {
public static void main(String[] args) {
String url = 'http://example.com'; // 替换为目标网页的URL
try {
Document doc = Jsoup.connect(url).get();
Elements images = doc.select('img[src~=(?i)\.(png|jpe?g|gif)]'); // 通过CSS选择器选择图片元素
for (Element image : images) {
String imageUrl = image.absUrl('src');
downloadImage(imageUrl); // 下载图片
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void downloadImage(String imageUrl) {
try {
URL url = new URL(imageUrl);
URLConnection conn = url.openConnection();
conn.connect();
String fileName = url.getFile().substring(url.getFile().lastIndexOf('/') + 1);
BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
FileOutputStream fos = new FileOutputStream(fileName);
byte[] buffer = new byte[1024];
int count;
while ((count = bis.read(buffer, 0, 1024)) != -1) {
fos.write(buffer, 0, count);
}
fos.close();
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在以上示例代码中,首先使用Jsoup库连接到指定的网页,然后使用CSS选择器选择所有的图片元素。接着,通过循环遍历这些图片元素,获取图片的URL,最后调用downloadImage方法将图片下载到本地。
请注意,以上代码仅提供了基本的爬取和下载图片的功能,并未包含异常处理和其他额外的功能。在实际应用中,你可能需要根据具体的需求进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/p7j6 著作权归作者所有。请勿转载和采集!