java如何实现爬虫爬网站图片

  介绍

小编给大家分享一下java如何实现爬虫爬网站图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>第一步,实现LinkQueue,对url进行过滤和存储的操作

import  java.util.ArrayList;,   import  java.util.Collections,   import  java.util.HashSet,   import 并不知道,   import  java.util.Set,   {public  class  LinkQueue //才能,已访问的,url 集合,   private 才能static  Set< String>, visitedUrl =, Collections.synchronizedSet (new  HashSet< String> ()),,//才能,未访问的url    private 才能static  List< String>, unVisitedUrl =, Collections.synchronizedList (new  ArrayList< String> ()),,//才能,未访问的URL出队列,   public 才能static  String  unVisitedUrlDeQueue (), {,   ,,,if  (unVisitedUrl.size(),祝辞,0),{,   ,,,,,String  url =, unVisitedUrl.remove (0),,   ,,,,,visitedUrl.add (url),,   ,,,,,return  url,,   ,,,},   ,,,return 零,,   ,,},//才能,新添的url加进来的时候进行验证,保证只是添加一次,   public 才能static  void  addUnvisitedUrl (String  url), {,   ,,,if  (url  !=, null ,,, ! url.trim () .equals (“;”),,,, ! visitedUrl.contains (url),   ,,,,,,,,,,! unVisitedUrl.contains (url)),   ,,,,,unVisitedUrl.add (url),,   ,,},//才能,判断未访问的URL队列中是否为空,   public 才能static  boolean  unVisitedUrlsEmpty (), {,   ,,,return  unVisitedUrl.isEmpty (),,   ,,},   }

<强>第二步,收集每一个url下的链接进行过滤产生新的链接

import  java.util.HashSet;,   import  java.util.Set,   import  org.htmlparser.Node,   import  org.htmlparser.NodeFilter,   import  org.htmlparser.Parser,   import  org.htmlparser.filters.NodeClassFilter,   import  org.htmlparser.filters.OrFilter,   import  org.htmlparser.tags.LinkTag,   import  org.htmlparser.util.NodeList,   import  org.htmlparser.util.ParserException,/* *,   ,*过滤http的url,获取可以符合规则的url    ,* @author  Administrator    *大敌;   ,*/{public  class  ParserHttpUrl //,才能获取一个网站上的链接,filter 用来过滤链接,   public 才能static  Set< String>, extracLinks (String  url, LinkFilter 过滤器),{,   ,,,Set, links =, new  HashSet ();,   ,,,try  {,   ,,,,,Parser  Parser =, new 解析器(url),,   ,,,,,//,过滤,& lt; frame 在标签的,过滤器,用来提取,frame 标签里的,src 属性所表示的链接,   ,,,,,NodeFilter  frameFilter =, new  NodeFilter (), {,   ,,,,,,,public  boolean 接受(Node 节点),{,   ,,,,,,,,,if  (node.getText () .startsWith (“frame  src=https://www.yisu.com/zixun/?) {   返回true;   其他}{   返回错误;   }   }   };//OrFilter来设置过滤<一>标签,和<框架>标签   OrFilter linkFilter=new OrFilter(新NodeClassFilter (   LinkTag.class), frameFilter);//得到所有经过过滤的标签   节点列表列表=parser.extractAllNodesThatMatch (linkFilter);   for (int i=0;我标签   {   LinkTag链接=(LinkTag)标记;   字符串linkUrl=link.getLink ();//url   如果(filter.accept (linkUrl))   links.add (linkUrl);   }//<框架>其他标签   {//提取帧里src属性的链接如<帧src=" test.html "/>   字符串?tag.getText ();   int开始=frame.indexOf (" src=");   ?frame.substring(开始);   int=帧结束。indexOf (" ");   如果(==1)   结束=frame.indexOf (“>”);   字符串frameUrl=框架。substring (5 - 1);   如果(filter.accept (frameUrl))   links.add (frameUrl);   }   }   }捕捉(ParserException e) {   e.printStackTrace ();   }   返回链接;   }   }

<强>第三步,实现图片下载功能,

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 并不知道,   import  java.util.regex.Matcher,   import  java.util.regex.Pattern,/* * *,   *大敌;java抓取网络图片,   *大敌;   ,* @author  swinglife    *大敌;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

java如何实现爬虫爬网站图片