java 爬图片 代码示例

qianduancss

温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!

java 爬图片 代码示例

Java爬取图片的代码示例如下:

我们需要使用Java的网络编程库来发送HTTP请求并获取网页内容。我们可以使用Java的URL类来打开一个网页链接,并使用BufferedReader类来读取网页的内容。

接下来,我们需要使用正则表达式来匹配网页中的图片链接。通常,图片链接的格式是以<img>标签开始,然后是src属性指定的图片链接。我们可以使用正则表达式来匹配这个<img>标签,并提取其中的src属性值。

我们可以使用Java的IO流来下载图片。我们可以使用Java的URL类再次打开图片链接,并使用InputStream类来读取图片的内容。然后,我们可以使用FileOutputStream类将图片内容写入到本地文件中。

下面是一个简单的示例代码,用于爬取指定网页中的图片:

import java.io.*;

import java.net.*;

import java.util.regex.*;

public class ImageCrawler {

public static void main(String[] args) {

try {

// 打开网页链接

URL url = new URL("https://www.example.com");

BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));

String line;

StringBuilder content = new StringBuilder();

while ((line = reader.readLine()) != null) {

content.append(line);

}

reader.close();

// 匹配图片链接

Pattern pattern = Pattern.compile("<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>");

Matcher matcher = pattern.matcher(content.toString());

while (matcher.find()) {

String imageUrl = matcher.group(1);

// 下载图片

URL imageUrlObj = new URL(imageUrl);

InputStream inputStream = imageUrlObj.openStream();

String fileName = imageUrl.substring(imageUrl.lastIndexOf("/") + 1);

FileOutputStream outputStream = new FileOutputStream(fileName);

byte[] buffer = new byte[1024];

int bytesRead;

while ((bytesRead = inputStream.read(buffer)) != -1) {

outputStream.write(buffer, 0, bytesRead);

}

inputStream.close();

outputStream.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

在这个示例代码中,我们首先使用URL类打开指定网页链接,并使用BufferedReader类读取网页内容。然后,我们使用正则表达式匹配<img>标签,并提取其中的src属性值。我们使用URL类再次打开图片链接,并使用InputStream类读取图片内容,然后使用FileOutputStream类将图片内容写入到本地文件中。

请注意,这只是一个简单的示例代码,实际的爬取图片过程可能会更复杂,例如处理重定向、处理异常等。爬取网页内容和图片时应遵守相关法律法规和网站的使用协议。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码