当前位置: 首页 > news >正文

Java爬虫下载网页图片

在Java中,可以使用HttpURLConnection,Jsoup等库来实现网页爬取和图片下载。下面是一个基本的例子:

首先,需要添加Jsoup库到你的项目中。如果你使用Maven,可以在你的pom.xml文件中添加以下依赖:

xml

<dependencies> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version> </dependency> </dependencies>

然后,你可以使用以下代码来下载网页上的图片:

public class Main {

public static void main(String[] args) {

String url = "http://example.com";

// 替换为你要爬取的网页

URL String saveDir = "./";

// 图片保存的目录

try {

HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection(); conn.setRequestMethod("GET");

conn.connect();

String html = Jsoup.parse(new InputStreamReader(conn.getInputStream()));

Document doc = Jsoup.parse(html); Elements imgElements = doc.select("img");

// 选择所有的img元素

for (Element img : imgElements) {

String imgUrl = img.absUrl("src");

// 获取图片的

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

// 获取图片的文件名

File file = new File(saveDir + fileName);

// 创建要保存的文件

try (InputStream in = new java.net.URL(imgUrl).openStream()) {

Files.copy(in, file.toPath(), StandardCopyOption.REPLACE_EXISTING);

// 下载图片并保存到指定目录

} catch (IOException e) {

e.printStackTrace();

} } } catch (IOException e) {

e.printStackTrace(); } } } 

这段代码首先打开指定的URL,然后解析HTML并选择所有的img元素。对于每个img元素,它获取图片的URL,然后下载图片并保存到指定的目录。请注意,这只是一个基本的例子,实际的网页可能会有更复杂的结构,可能需要更复杂的解析和选择逻辑。

http://www.lryc.cn/news/137249.html

相关文章:

  • C语言之扫雷游戏实现篇
  • Python面向对象中super用法与MRO机制
  • 高性能网络模式-Reactor
  • gRpc的四种通信方式详细介绍
  • JWT令牌的介绍
  • C语言入门 Day_9 条件判断
  • Nodejs-nrm:快速切换npm源 / npm官方源和其他自定义源之间切换
  • 数据驱动洞察:各种词频分析技术挖掘热点数据
  • ES6-简介、语法
  • 诚迈科技子公司智达诚远与Unity中国达成合作,打造智能座舱新时代
  • 算法与数据结构(十)--图的入门
  • 【Go 基础篇】Go语言 init函数详解:包的初始化与应用
  • wazuh环境配置及漏洞复现
  • Java接收前端请求体方式
  • 私有化部署即时通讯平台,30分钟替换钉钉和企业微信
  • 如何深入理解 Node.js 中的流(Streams)
  • MSP430FR2xxx开发(一)添加driverlib
  • 【C++】做一个飞机空战小游戏(九)——发射子弹的编程技巧
  • 34.SpringMVC获取请求参数
  • TC1016-同星4路CAN(FD),2路LIN转USB接口卡
  • Android源码——从Looper看ThreadLocal
  • 16、Flink 的table api与sql之连接外部系统: 读写外部系统的连接器和格式以及JDBC示例(4)
  • MySQL 自定义 split 存储过程
  • 专题-【十字链表】
  • 微信小程序教学系列(2)
  • 社科院与美国杜兰大学金融管理硕士项目——畅游于金融世界
  • 功能强大、超低功耗的STM32WL55JCI7、STM32WL55CCU7、STM32WL55CCU6 32位无线远距离MCU
  • 【自适应稀疏度量方法和RQAM】疏度测量、RQAM特征、AWSPT和基于AWSPT的稀疏度测量研究(Matlab代码实现)
  • sql递归查询
  • 常见前端面试之VUE面试题汇总三