เพียงใช้ไฟล์ Java และเรียกใช้วิธีหลัก แพ็คเกจ JAR ที่ต้องพึ่งพาคือ com.alibaba.fastjson (เวอร์ชัน 1.2.28) และ JSOUP (เวอร์ชัน 1.10.2)
หากคุณใช้ POM แล้วสองสิ่งต่อไปนี้คือ:
<Ederency> <sderctId> com.alibaba </groupId> <ratifactid> fastjson </artifactid> <cersion> 1.2.28 </เวอร์ชัน> </การพึ่งพา> <การพึ่งพา
รหัสที่สมบูรณ์มีดังนี้:
แพ็คเกจ com.tuniu.fcm.facade.ipproxy; นำเข้า com.alibaba.fastjson.jsonobject; นำเข้า org.jsoup.jsoup; นำเข้า org.jsoup.nodes.document; นำเข้า Java.util.arraylist; java.util.regex.matcher; นำเข้า java.util.regex.pattern;/** * เพื่อรับพร็อกซี ip คุณต้องการ * com.alibaBa.fastjson.jsonObject และ JSOUP */proxycralwerunusedvpn {เธรด Threadlocal <list <proxyinfo>> localproxyinfos = ใหม่ threadlocal <list <proxyinfo>> (); โมฆะคงที่สาธารณะหลัก (สตริง [] args) {proxycralwerunusedvpn proxycrawler = new proxycralwerunusedvpn; /*** จำนวนพร็อกซี IP ที่จะได้รับจะถูกระบุโดย Demander (หากมีมากเกินไปการส่งคืนจะช้าลง) */ proxycrawler.startcrawler (1); } / *** สัมผัสกับทางเข้าสู่การเรียกโมดูลภายนอก* @param ต้องการจำนวนพร็อกซี IPS ผู้โทรคาดว่าจะได้รับ* / สตริงสาธารณะ startCrawler (int ต้องการ) {localwantedNumber.set (ต้องการ Kuaidailicom ("http://www.xicidaili.com/nn/", 15); Kuaidailicom ("http://www.xicidaili.com/nt/", 15); Kuaidailicom ("http://www.xicidaili.com/wt/", 15); Kuaidailicom ("http://www.kuaidaili.com/free/inha/", 15); Kuaidailicom ("http://www.kuaidaili.com/free/intr/", 15); Kuaidailicom ("http://www.kuaidaili.com/free/outtr/", 15); / *** สร้างข้อมูลส่งคืน*/ Proxyresponse Response = new Proxyresponse (); Response.setsuccess ("true"); แผนที่ <string, Object> datainFomap = new hashmap <string, object> (); datainfomap.put ("numfound", localproxyinfos.get (). size ()); datainfomap.put ("pagenum", 1); datainfomap.put ("พร็อกซี", localproxyinfos.get ()); Response.setData (DatainFomap); การตอบสนองสตริง = jsonObject.tojson (การตอบสนอง) .toString (); System.out.println (Responsestring); คืนคำตอบ; } โมฆะส่วนตัว kuaidailicom (String baseUrl, int totalPage) {String ipreg = "//d {1,3smo//.//d {1,3}//.//d {1,3sm รูปแบบ ipptn = pattern.compile (ipreg); สำหรับ (int i = 1; i <totalPage; i ++) {ถ้า (getCurrentProxynumber ()> = localwantedNumber.get ()) {return; } ลอง {document doc = jsoup.connect (baseUrl + i + "/") .header ("ยอมรับ", "ข้อความ/html, แอปพลิเคชัน/xhtml + xml, แอปพลิเคชัน/xml; q = 0.9, ภาพ/webp,*/*; q = 0.8") "zh-cn, zh; q = 0.8, en; q = 0.6") .header ("แคช-ควบคุม", "max-age = 0") .header ("ผู้ใช้-ตัวแทน", "mozilla/5.0 (macintosh; intel mac os x 10_11_4) applewebkit/537.36 Safari/537.36 ") .header (" คุกกี้ "," HM_LVT_7ED65B1CC4B810E9FD37959C9BB51B31 = 1462812244; _GAT = 1; "www.kuaidaili.com") .header ("ผู้อ้างอิง", "http://www.kuaidaili.com/free/outha/") .timeout (30 * 1000) .get (); matcher m = ipptn.matcher (doc.text ()); ในขณะที่ (m.find ()) {ถ้า (getCurrentProxynumber ()> = localwantedNumber.get ()) {break; } string [] strs = m.group (). แยก (""); if (checkproxy (strs [0], integer.parseint (strs [1]))) {system.out.println ("รับพร็อกซี ip/t" + strs [0] + "/t" + strs [1]); addproxy (strs [0], strs [1], "http"); }}} catch (exception e) {e.printstacktrace (); }}} checkproxy boolean แบบคงที่ส่วนตัว (สตริง IP, พอร์ตจำนวนเต็ม) {ลอง {//http://1212.ip138.com/ic.asp สามารถแทนที่ด้วยเว็บเพจที่เร็วขึ้น jsoup.connect ("http://1212.ip138.com/ic.asp") กลับมาจริง; } catch (exception e) {return false; }} int ส่วนตัว getCurrentProxyNumber () {รายการ <proxyInfo> proxyinfos = localproxyinfos.get (); if (proxyinfos == null) {proxyinfos = new ArrayList <proxyinfo> (); localproxyinfos.set (proxyinfos); กลับ 0; } else {return proxyinfos.size (); }} โมฆะส่วนตัว addProxy (สตริง IP, พอร์ตสตริง, โปรโตคอลสตริง) {รายการ <proxyinfo> proxyinfos = localproxyinfos.get (); if (proxyinfos == null) {proxyinfos = new ArrayList <proxyinfo> (); ProxyInfos.add (ใหม่ ProxyInfo (IP, พอร์ต, โปรโตคอล)); } else {proxyinfos.add (proxyinfo ใหม่ (IP, พอร์ต, โปรโตคอล)); }}} คลาส proxyInfo {ชื่อผู้ใช้สตริงส่วนตัว = ""; สตริงส่วนตัว IP; รหัสผ่านสตริงส่วนตัว = ""; ประเภทสตริงส่วนตัว พอร์ตสตริงส่วนตัว INT ส่วนตัว IS_INTERNET = 1; proxyinfo สาธารณะ (สตริง IP, พอร์ตสตริง, ประเภทสตริง) {this.ip = ip; this.type = type; this.port = พอร์ต; } สตริงสาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้; } โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {this.userName = ชื่อผู้ใช้; } สตริงสาธารณะ getip () {return ip; } โมฆะสาธารณะ setip (string ip) {this.ip = ip; } สตริงสาธารณะ getPassword () {ส่งคืนรหัสผ่าน; } โมฆะสาธารณะ setPassword (รหัสผ่านสตริง) {this.password = รหัสผ่าน; } สตริงสาธารณะ getType () {ประเภทส่งคืน; } โมฆะสาธารณะ setType (ประเภทสตริง) {this.type = type; } Public String getPort () {พอร์ต return; } โมฆะสาธารณะ setport (พอร์ตสตริง) {this.port = พอร์ต; } สาธารณะ int getis_internet () {return is_internet; } โมฆะสาธารณะ setis_internet (int is_internet) {this.is_internet = is_internet; }} คลาส proxyresponse {ความสำเร็จของสตริงส่วนตัว; แผนที่ส่วนตัว <สตริงวัตถุ> ข้อมูล; สตริงสาธารณะ getSuccess () {กลับมาประสบความสำเร็จ; } โมฆะสาธารณะ setSuccess (ความสำเร็จของสตริง) {this.success = ความสำเร็จ; } แผนที่สาธารณะ <String, Object> getData () {return data; } โมฆะสาธารณะ setData (แผนที่ <string, object> data) {this.data = data; -ตัวอย่างข้างต้นของพร็อกซีพร็อกซีพร็อกซีของ Java Proxy IP เป็นเนื้อหาทั้งหมดที่ฉันได้แบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น