ใช้ Java เพื่อคว้าภาพทั้งหมดบนหน้าเว็บ:
ใช้สองนิพจน์ทั่วไป:
1. การจับคู่แท็ก img ปกติใน html: <img.*src = (.*?) [^>]*?>
2. จับคู่เส้นทาง HTTP ใน SRC ในแท็ก IMG: http:/"? (.*?) (/" |> | // s+)
ทำให้สำเร็จ:
แพ็คเกจ org.swinglife.main; นำเข้า Java.io.File; นำเข้า Java.io.FileOutputStream; นำเข้า Java.io.InputStream; นำเข้า java.net.url; นำเข้า java.net.urlconnection; นำเข้า java.util.arraylist; นำเข้า java.util.list; นำเข้า java.util.regex.matcher; นำเข้า java.util.regex.pattern; /**** ภาพเครือข่ายการรวบรวมข้อมูล Java* @author Swinglife**/คลาสสาธารณะ catchimage {// ที่อยู่ส่วนตัวสตริงสุดท้ายคงที่ url = "http://www.csdn.net"; // การเข้ารหัสสตริงสุดท้ายคงที่ส่วนตัว ecoding = "UTF-8"; // รับ img tag ปกติสตริงสุดท้ายคงที่ imgurl_reg = "<img.*src = (.*?) [^>]*?>"; // รับ SRC PATH สตริงคงสุดท้ายส่วนตัวคงที่ IMGSRC_REG = "http:/"? (.*?) (/"|> | // s+)"; โมฆะคงที่สาธารณะหลัก (สตริง [] 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 * @return * @throws Exception * / สตริงส่วนตัว gethtml (url สตริง) โยนข้อยกเว้น {url uri = url ใหม่ (url); การเชื่อมต่อ urlConnection = uri.openconnection (); inputStream ใน = connection.getInputStream (); ไบต์ [] buf = ไบต์ใหม่ [1024]; ความยาว int = 0; StringBuffer sb = new StringBuffer (); ในขณะที่ ((length = in.read (buf, 0, buf.length))> 0) {sb.append (สตริงใหม่ (buf, ecoding)); } in.close (); ส่งคืน sb.toString (); } / *** * รับที่อยู่ ImageUrl * * @param html * @return * / รายการส่วนตัว <String> getImageUrl (สตริง html) {matcher matcher = pattern.compile (imgurl_reg) .matcher (html); รายการ <String> listimGurl = new ArrayList <String> (); ในขณะที่ (matcher.find ()) {listimgurl.add (matcher.group ()); } return listimgurl; } / *** * รับที่อยู่ภาพ * * @Param ListImageUrl * @return * / รายการส่วนตัว <String> getImagesRC (รายการ <String> ListImageUrl) {รายการ <String> listimgsrc = new ArrayList <String> (); สำหรับ (String Image: ListImageUrl) {matcher matcher = pattern.compile (imgsrc_reg) .matcher (รูปภาพ); ในขณะที่ (matcher.find ()) {listimgsrc.add (matcher.group (). substring (0, matcher.group (). length () - 1)); }} return listimgsrc; }/**** ดาวน์โหลดรูปภาพ** @param listimgsrc*/โมฆะส่วนตัวดาวน์โหลด (รายการ <string> listimgsrc) {ลอง {สำหรับ (url string: listimgsrc) {string imageName = url.substring (url.lastindexof ("/") + 1 url uri = url ใหม่ (url); inputStream ใน = uri.openstream (); fileOutputStream fo = new fileOutputStream (ไฟล์ใหม่ (imageName)); ไบต์ [] buf = ไบต์ใหม่ [1024]; ความยาว int = 0; System.out.println ("เริ่มดาวน์โหลด:" + url); ในขณะที่ ((length = in.read (buf, 0, buf.length))! = -1) {fo.write (buf, 0, ความยาว); } in.close (); fo.close (); System.out.println (imageName + "ดาวน์โหลดเสร็จสมบูรณ์"); }} catch (exception e) {system.out.println ("ดาวน์โหลดล้มเหลว"); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น