`
chengyue2007
  • 浏览: 1489316 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

实现java读取网页内容并下载网页中出现的图片

    博客分类:
  • java
阅读更多

package com;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GetContentPicture {
public void getHtmlPicture(String httpUrl) {
URL url;
BufferedInputStream in;
FileOutputStream file;
try {
   System.out.println("取网络图片");
   String fileName = httpUrl.substring(httpUrl.lastIndexOf("/"));
   String filePath = "./pic/";
   url = new URL(httpUrl);

   in = new BufferedInputStream(url.openStream());

   file = new FileOutputStream(new File(filePath+fileName));
   int t;
   while ((t = in.read()) != -1) {
    file.write(t);
   }
   file.close();
   in.close();
   System.out.println("图片获取成功");
} catch (MalformedURLException e) {
   e.printStackTrace();
} catch (FileNotFoundException e) {
   e.printStackTrace();
} catch (IOException e) {
   e.printStackTrace();
}
}

public String getHtmlCode(String httpUrl) throws IOException {
String content ="";
URL uu = new URL(httpUrl); // 创建URL类对象
BufferedReader ii = new BufferedReader(new InputStreamReader(uu
    .openStream())); // //使用openStream得到一输入流并由此构造一个BufferedReader对象
String input;
while ((input = ii.readLine()) != null) { // 建立读取循环,并判断是否有读取值
   content += input;
}
ii.close();
return content;
}

public void get(String url) throws IOException {

String searchImgReg = "(?x)(src|SRC|background|BACKGROUND)=('|\")/?(([\\w-]+/)*([\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";
String searchImgReg2 = "(?x)(src|SRC|background|BACKGROUND)=('|\")(http://([//w-]+//.)+[//w-]+(:[0-9]+)*(/[//w-]+)*(/[//w-]+//.(jpg|JPG|png|PNG|gif|GIF)))(%20|/")";

String content = this.getHtmlCode(url);
System.out.println(content);

Pattern pattern = Pattern.compile(searchImgReg);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
   System.out.println(matcher.group(3));
   this.getHtmlPicture(url+matcher.group(3));
  
}

pattern = Pattern.compile(searchImgReg2);
matcher = pattern.matcher(content);
while (matcher.find()) {
   System.out.println(matcher.group(3));
   this.getHtmlPicture(matcher.group(3));
  
}
// searchImgReg =
// "(?x)(src|SRC|background|BACKGROUND)=('|\")/?(([\\w-]+/)*([\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";
}
public static void main(String[] args) throws IOException {
String url = "http://www.baidu.com/";
GetContentPicture gcp = new GetContentPicture();
gcp.get(url);
}
}

分享到:
评论

相关推荐

    实现java读取网页内容并下载网页中出现的图片.pdf

    在Java编程中,读取网页内容并下载网页中出现的图片是一项常见的任务,尤其是在网络爬虫或者数据分析的应用中。以下是如何使用Java实现这一功能的详细步骤: 首先,我们需要使用`java.net.URL`类来创建一个URL对象...

    java获取网网页中出现的图片及判断网页代码中是否包含有效图片

    下面将详细介绍如何使用Java获取网页中出现的图片以及如何判断网页代码中是否包含有效的图片。 #### 一、获取网页中的图片 在Java中,可以利用`java.net.URL`和`java.net.URLConnection`类来访问和读取网页内容,...

    java实现本地读取图片存储到数据库中并在html网页显示

    在本文中,我们将深入探讨如何使用Java实现在本地读取图片并将其存储到数据库中,之后再通过HTML页面显示这些图片。这个过程涉及到的主要技术包括Java编程、数据库操作(特别是MySQL)以及前后端交互。 首先,我们...

    Java读取word文档内容并输出成网页(含图片,公式)

    在这个场景中,我们将重点讨论如何使用Java POI读取Word文档并将其内容转换为HTML网页,同时确保图片和公式等复杂元素能够正确显示。 首先,你需要在你的Java项目中引入Apache POI库。可以通过Maven或Gradle来添加...

    用JAVA实现远程图片批量下载

    3. **图片下载**:当解析出图片URL后,为每个图片创建一个独立的线程进行下载。在下载过程中,需要考虑错误处理和异常情况,确保下载过程的健壮性。 4. **执行流程**:从指定的入口URL开始,不断循环处理`...

    java 实现整张网页快照

    例如,可以执行一个JavaScript脚本来获取网页的canvas元素,然后调用`toDataURL()`方法将canvas内容转换为Base64编码的图像数据。 5. **处理图像数据**:在Java端接收到Base64编码的图像数据后,将其解码并保存为...

    Java读取网页内容并下载图片的实例

    Java读取网页内容并下载图片的实例主要介绍了Java读取网页内容并下载图片的实例的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下。 知识点1:Java读取网页内容 Java读取网页...

    用java代码下载网页图片

    通过URL对象可以获取网页资源,并对其进行读取、下载等操作。例如,通过URL对象获取图片资源: ```java URL url = new URL("http://example.com/image.jpg"); ``` #### 1.2 文件操作 Java中的文件操作主要通过`...

    纯Java实现整个网页截图项目源代码

    DJNativeSwing可能提供API来获取当前视口的图像,然后通过多次滚动和截图,合并成一个完整的网页图片。 4. **图像合成**: 由于网页可能比屏幕可视区域大,因此需要将多个小图像拼接起来。Java的图像处理库,如Java ...

    java web编程技术 实现网页图片下载

    在网页图片下载中,通常使用GET请求来获取资源,因为GET请求简单且无状态,适合用于获取静态资源如图片。当用户点击下载链接时,浏览器会向服务器发送一个包含URL的GET请求,服务器收到请求后,从指定路径读取图片...

    java爬虫抓取网页内容,下载网站图片

    Java爬虫技术是一种用于自动化获取网页内容的程序,它能够模拟人类浏览器的行为,遍历互联网上的页面,提取所需的信息。在本场景中,我们将重点讨论如何利用Java编写爬虫来抓取网页内容并下载其中的图片。 首先,...

    java实现HTML解析图片批量下载

    在"java实现HTML解析图片批量下载"这个项目中,我们将主要关注两个核心部分:HTML解析和图片下载。 首先,我们需要引入Jsoup库。在你的`pom.xml`文件(如果你使用的是Maven)中添加以下依赖: ```xml <groupId>...

    通过URL地址获取网页生成jpg图片

    通过Jsoup,我们可以获取网页的DOM结构,并进行渲染前的预处理,例如删除脚本和样式元素,因为这些在图片中是不需要的: ```java Document doc = Jsoup.parse(response.getEntity().getContent(), "UTF-8", url); ...

    java,jsp读取远程图片到本地服务器

    在Java和JSP开发中,有时我们需要处理在线编辑器上传的内容,这可能涉及到从Web页面中获取远程图片并将其保存到本地服务器。这样的功能对于确保网站的性能和用户体验至关重要,因为将图片本地化可以减少加载时间,...

    ajax实现java文件下载

    本话题将详细探讨如何通过Ajax实现Java文件的下载,并介绍相关的核心概念和技术。 1. **Ajax**(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。它通过JavaScript...

    用java实现的网页抓图,下载自己喜欢的图片

    1. **网络请求**:Java中的`HttpURLConnection`或第三方库如`Apache HttpClient`可以用来发送HTTP请求,获取网页的HTML内容。通过设置URL,我们可以向指定的网页发起GET请求,得到响应后,我们就可以解析返回的HTML...

    java实现网页截图技术

    在Java编程环境中,实现网页截图技术是一项常见的需求,特别是在自动化测试、数据分析或者生成网页快照等场景中。本文将深入探讨如何使用Java来捕获网页的屏幕快照,并结合提供的标签"源码"和"工具",给出具体的实现...

    java jsp+servlet实现文件下载(而不是在网页中显示出文件内容) 迅雷下载功能.zip

    4. **读取文件并输出**:使用Java的`java.io`包中的`FileInputStream`读取文件内容,然后通过`HttpServletResponse`的`getOutputStream()`方法获取输出流,将文件内容写入到这个输出流中。 5. **处理迅雷下载**:...

    java访问https网址下载文件

    本篇将详细介绍如何在Java中实现这一功能,特别是在遇到需要下载证书的情况。 首先,你需要引入Java的HTTPS相关的库,这通常包含在`javax.net.ssl`包中。Java的`HttpURLConnection`类是处理HTTP和HTTPS请求的基础,...

    java将网页保存成mht格式程序

    - **HTTP请求**:使用`java.net.URL`和`URLConnection`类来发起HTTP请求并获取网页的HTML内容。 - **资源定位**:通过解析HTML文档,使用`org.htmlparser`库或其他HTML解析库来提取页面中的资源链接,如图片、样式...

Global site tag (gtag.js) - Google Analytics