全网整合营销服务商

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

免费咨询热线: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 


相关文章: 建站主机选购指南:核心配置与性价比推荐解析  如何通过虚拟主机快速完成网站搭建?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  如何在IIS管理器中快速创建并配置网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Swift开发中switch语句值绑定模式  微信小程序 五星评分(包括半颗星评分)实例代码  建站10G流量真的够用吗?如何应对访问高峰?  PHP 500报错的快速解决方法  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  建站之星下载版如何获取与安装?  如何通过VPS搭建网站快速盈利?  如何在阿里云香港服务器快速搭建网站?  如何使用Golang table-driven基准测试_多组数据测量函数效率  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  ,南京靠谱的征婚网站?  ,制作一个手机app网站要多少钱?  如何在西部数码注册域名并快速搭建网站?  网站制作报价单模板图片,小松挖机官方网站报价?  公司网站制作价格怎么算,公司办个官网需要多少钱?  香港服务器如何优化才能显著提升网站加载速度?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何快速搭建高效可靠的建站解决方案?  开源网站制作软件,开源网站什么意思?  创业网站制作流程,创业网站可靠吗?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  定制建站流程步骤详解:一站式方案设计与开发指南  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何快速搭建响应式可视化网站?  建站168自助建站系统:快速模板定制与SEO优化指南  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  MySQL查询结果复制到新表的方法(更新、插入)  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  高端建站如何打造兼具美学与转化的品牌官网?  香港服务器WordPress建站指南:SEO优化与高效部署策略  模具网站制作流程,如何找模具客户?  如何获取PHP WAP自助建站系统源码?  宿州网站制作公司兴策,安徽省低保查询网站?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  红河网站制作公司,红河事业单位身份证如何上传?  建站主机类型有哪些?如何正确选型  建站之星如何快速解决建站难题?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的? 

您的项目需求

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