Java를 사용하여 웹 페이지의 모든 이미지를 가져옵니다.
두 가지 정규 표현식 사용 :
1. html에서 IMG 태그를 일치시키는 정기 : <img.*src = (.*?) [^>]*?>
2. IMG 태그에서 SRC의 HTTP 경로를 일치시킵니다. http :/"? (.*?) (/"|> | // s+)
성취하다:
패키지 org.swinglife.main; import java.io.file; import java.io.fileoutputStream; import java.io.inputstream; import java.net.url; import java.net.urlConnection; java.util.arraylist 가져 오기; Java.util.list 가져 오기; import java.util.regex.matcher; java.util.regex.pattern import; /**** Java 크롤링 네트워크 이미지* @Author SwingLife**/public class catchimage {// 주소 개인 정적 최종 문자열 url = "http://www.csdn.net"; // 개인 정적 최종 문자열 인코딩 ecoding = "utf-8"; // IMG 태그를 받는다 일반 개인 정적 최종 문자열 imgurl_reg = "<img.*src = (.*?) [^>]*?>"; // SRC PATH를 받기 일반적인 개인 정적 최종 문자열 imgsrc_reg = "http :/"? (.*?) (/"|> | // s+)"; public static void main (string [] args)은 예외 {catchimage cm = new catchimage (); // html 텍스트 내용 문자열 html = cm.gethtml (url); // 이미지 태그 목록을 가져옵니다. <string> imgurl = cm.getImageUrl (html); // 이미지 SRC 주소 목록을 가져옵니다. <string> imgsrc = cm.getimagesrc (imgurl); // 이미지 다운로드 cm.download (IMGSRC); } / *** * html 컨텐츠 가져 오기 * * @param url * @Throws Exception * / private string gethtml (String URL)은 예외 {url uri = new url (url); urlConnection Connection = uri.openConnection (); inputStream in = connection.getInputStream (); 바이트 [] buf = 새로운 바이트 [1024]; int 길이 = 0; StringBuffer sb = new StringBuffer (); while (길 } in.close (); 반환 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 (문자열 이미지 : listImageUrl) {matcher matcher = pattern.compile (imgsrc_reg) .matcher (image); while (matcher.find ()) {listimgsrc.add (matcher.group (). substring (0, matcher.group (). longth () -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 = 새 FileOutputStream (새 파일 (imageName)); 바이트 [] buf = 새로운 바이트 [1024]; int 길이 = 0; System.out.println ( "시작 다운로드 :" + URL); while (길 } in.close (); fo.close (); System.out.println (imageName + "다운로드 완료"); }} catch (예외 e) {System.out.println ( "다운로드 실패"); }}}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.