全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片

利用Java抓取网页上的所有图片:

用两个正则表达式:

1、匹配html中img标签的正则:<img.*src=(.*?)[^>]*?>

2、匹配img标签中得src中http路径的正则:http:\"?(.*?)(\"|>|\\s+)

实现:

package org.swinglife.main; 
 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.net.URL; 
import java.net.URLConnection; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
 
/*** 
 * java抓取网络图片 
 * @author swinglife 
 * 
 */ 
public class CatchImage { 
 
  // 地址 
  private static final String URL = "http://www.csdn.net"; 
  // 编码 
  private static final String ECODING = "UTF-8"; 
  // 获取img标签正则 
  private static final String IMGURL_REG = "<img.*src=(.*?)[^>]*?>"; 
  // 获取src路径的正则 
  private static final String IMGSRC_REG = "http:\"?(.*?)(\"|>|\\s+)"; 
 
   
  public static void main(String[] args) throws Exception { 
    CatchImage cm = new CatchImage(); 
    //获得html文本内容 
    String HTML = cm.getHTML(URL); 
    //获取图片标签 
    List<String> imgUrl = cm.getImageUrl(HTML); 
    //获取图片src地址 
    List<String> imgSrc = cm.getImageSrc(imgUrl); 
    //下载图片 
    cm.Download(imgSrc); 
  } 
   
   
  /*** 
   * 获取HTML内容 
   * 
   * @param url 
   * @return 
   * @throws Exception 
   */ 
  private String getHTML(String url) throws Exception { 
    URL uri = new URL(url); 
    URLConnection connection = uri.openConnection(); 
    InputStream in = connection.getInputStream(); 
    byte[] buf = new byte[1024]; 
    int length = 0; 
    StringBuffer sb = new StringBuffer(); 
    while ((length = in.read(buf, 0, buf.length)) > 0) { 
      sb.append(new String(buf, ECODING)); 
    } 
    in.close(); 
    return sb.toString(); 
  } 
 
  /*** 
   * 获取ImageUrl地址 
   * 
   * @param HTML 
   * @return 
   */ 
  private List<String> getImageUrl(String HTML) { 
    Matcher matcher = Pattern.compile(IMGURL_REG).matcher(HTML); 
    List<String> listImgUrl = new ArrayList<String>(); 
    while (matcher.find()) { 
      listImgUrl.add(matcher.group()); 
    } 
    return listImgUrl; 
  } 
 
  /*** 
   * 获取ImageSrc地址 
   * 
   * @param listImageUrl 
   * @return 
   */ 
  private List<String> getImageSrc(List<String> listImageUrl) { 
    List<String> listImgSrc = new ArrayList<String>(); 
    for (String image : listImageUrl) { 
      Matcher matcher = Pattern.compile(IMGSRC_REG).matcher(image); 
      while (matcher.find()) { 
        listImgSrc.add(matcher.group().substring(0, matcher.group().length() - 1)); 
      } 
    } 
    return listImgSrc; 
  } 
 
  /*** 
   * 下载图片 
   * 
   * @param listImgSrc 
   */ 
  private void Download(List<String> listImgSrc) { 
    try { 
      for (String url : listImgSrc) { 
        String imageName = url.substring(url.lastIndexOf("/") + 1, url.length()); 
        URL uri = new URL(url); 
        InputStream in = uri.openStream(); 
        FileOutputStream fo = new FileOutputStream(new File(imageName)); 
        byte[] buf = new byte[1024]; 
        int length = 0; 
        System.out.println("开始下载:" + url); 
        while ((length = in.read(buf, 0, buf.length)) != -1) { 
          fo.write(buf, 0, length); 
        } 
        in.close(); 
        fo.close(); 
        System.out.println(imageName + "下载完成"); 
      } 
    } catch (Exception e) { 
      System.out.println("下载失败"); 
    } 
  } 
 
   
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# java抓取网页图片  # JAVA正则抓取图片  # java  # 抓取图片  # JavaWeb项目打开网页出现Session Error的异常解决方案  # java通过Jsoup爬取网页过程详解  # 详解java实现简单扫码登录功能(模仿微信网页版扫码)  # java调用微信接口实现网页分享小功能  # Java实现微信网页授权的示例代码  # Java实现的简单网页截屏功能示例  # java利用url实现网页内容的抓取  # Java导出网页表格Excel过程详解  # 下载图片  # 大家多多  # 中得  # 下载完成  # 正则表达式  # regex  # List  # Matcher  # ArrayList  # Pattern  # InputStream  # URL  # net  # URLConnection  # FileOutputStream  # util  # www  # String  # final  # UTF 


相关文章: 建站之星后台密码遗忘或太弱?如何重置与强化?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  代刷网站制作软件,别人代刷火车票靠谱吗?  建站之星安装提示数据库无法连接如何解决?  如何在IIS7中新建站点?详细步骤解析  微信小程序 input输入框控件详解及实例(多种示例)  建站之星代理平台如何选择最佳方案?  如何通过网站建站时间优化SEO与用户体验?  制作农业网站的软件,比较好的农业网站推荐一下?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在云服务器上快速搭建个人网站?  家庭建站与云服务器建站,如何选择更优?  宝塔建站无法访问?如何排查配置与端口问题?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  建站主机如何安装配置?新手必看操作指南  高端网站建设与定制开发一站式解决方案 中企动力  如何在宝塔面板中修改默认建站目录?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何快速生成凡客建站的专业级图册?  如何用腾讯建站主机快速创建免费网站?  SQL查询语句优化的实用方法总结  网站制作难吗安全吗,做一个网站需要多久时间?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  广州营销型建站服务商推荐:技术优势与SEO优化解析  山东云建站价格为何差异显著?  常州企业建站如何选择最佳模板?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  建站168自助建站系统:快速模板定制与SEO优化指南  桂林网站制作公司有哪些,桂林马拉松怎么报名?  C#如何序列化对象为XML XmlSerializer用法  建站之星CMS建站配置指南:模板选择与SEO优化技巧  C#怎么创建控制台应用 C# Console App项目创建方法  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  宝塔建站助手安装配置与建站模板使用全流程解析  如何快速配置高效服务器建站软件?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  网站制作企业,网站的banner和导航栏是指什么?  家庭服务器如何搭建个人网站?  建站之星如何通过成品分离优化网站效率?  北京制作网站的公司,北京铁路集团官方网站?  宝塔面板创建网站无法访问?如何快速排查修复?  北京专业网站制作设计师招聘,北京白云观官方网站?  C++中引用和指针有什么区别?(代码说明)  Android使用GridView实现日历的简单功能 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。