Cukup gunakan file java dan jalankan metode utama. Paket toples yang harus diandalkan adalah com.alibaba.fastjson (versi 1.2.28) dan jsoup (versi 1.10.2)
Jika Anda menggunakan POM, maka dua berikut adalah:
<dependency> <GroupId> com.alibaba </groupid> <ArTifactId> fastjson </sartifactid> <version> 1.2.28 </version> </dependency> <dependency> <groupid> org.jsoup </groupid> <ArTifactId> JSoup </ArtifactId> Versi 1.10.2 </ARTIFACTID> JSOUP </ArtifacTID> Versi 1.10.2 </Versi> </ART/ARTIFACID> </Versi> </Versi> </Versi> </ART/ARTIFAUTD> </ARTIPID> </ARTIPID>
Kode lengkapnya adalah sebagai berikut:
Paket com.tuniu.fcm.facade.ipproxy; import com.alibaba.fastjson.jsonobject; impor org.jsoup.jsoup; impor org.jsoup.nodes.document; impor impor. java.util.regex.Matcher;import java.util.regex.Pattern;/** * To obtain the proxy IP, you need * com.alibaba.fastjson.JSONObject and Jsoup */public class ProxyCralwerUnusedVPN { ThreadLocal<Integer> localWantedNumber = new ThreadLocal<Integer>(); ThreadLocal <Daftar <RoxyInfo>> localproxyInfos = threadlocal baru <Daftar <RoxyInfo>> (); public static void main (string [] args) {proxycralwerunusedVpn proxycrawler = proxycralwerunusedvpn baru; /*** Jumlah proxy IP yang akan diperoleh harus ditentukan oleh Demander. (Jika ada terlalu banyak, pengembalian akan melambat) */ proxycrawler.Startcrawler (1); } / *** Terkena pintu masuk ke panggilan modul eksternal* @param wantes jumlah jumlah proxy yang diharapkan penelepon untuk mendapatkan* / string public startcrawler (int wantedNumber) {localwantednumber.set (wantedNumber); 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); / *** Bangun data pengembalian*/ ProxyResponse Response = new proxyresponse (); response.setsuccess ("true"); Peta <String, Object> datalfomap = hashmap baru <string, object> (); datalfomap.put ("numfound", localproxyinfos.get (). size ()); datalfomap.put ("pagenum", 1); Datainfomap.put ("Proxy", LocalProxyInfos.get ()); response.setData (datainfomap); String responseString = jsonObject.toJson (respons) .toString (); System.out.println (responseString); mengembalikan responseString; } private void kuaidailicom (string baseUrl, int totalpage) {string ipreg = "//d.1,3}//.//d{1,3 --////d.1,3,3/////d.1,3/////d.1,3} // D {1,6 {1"; Pola ipptn = pola.compile (ipreg); untuk (int i = 1; i <totalpage; i ++) {if (getCurrentProxynumber ()> = localwantedNumber.get ()) {return; } coba {document doc = jsoup.connect (baseUrl + i + "/") .Header ("terima", "teks/html, aplikasi/xhtml + xml, aplikasi/xml; q = 0,9, gambar/webp,*/*; q = 0,8") .eader ("accect-encoding", "gzip" gzip, "gzip", "gzip", "gzip". "ZH-CN, ZH; q = 0,8, en; q = 0,6") .Header ("cache-control", "Max-AGE = 0") .HEADER ("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebkit/537.36 (KHTM, LUCROME (LUCHTM/537.11.11 (Like.11.11.11 (Like/537.11.11 (like/537. Safari/537.36 ") .Header (" Cookie "," HM_LVT_7ED65B1CC4B810E9FD37959C9BB51B31 = 1462812244; _gat = 1; _GA = GA1.2.1061361785.146 "" "" ")" "" ")" "" "") "" "") "" "" "") "" "" ")" "" ")" "" ". "www.kuaidaili.com") .Header ("referer", "http://www.kuaidaili.com/free/outha/") .timeout (30 * 1000) .get (); Pencocokan m = ipptn.matcher (doc.text ()); while (m.find ()) {if (getCurrentProxynumber ()> = localwantednumber.get ()) {break; } String [] strs = m.group (). Split (""); if (checkProxy (strs [0], integer.parseint (strs [1]))) {System.out.println ("Dapatkan proxy ip/t" + strs [0] + "/t" + strs [1]); addProxy (strs [0], strs [1], "http"); }}} catch (Exception e) {e.printstacktrace (); }}} private static boolean checkProxy (string ip, integer port) {coba {//http://1212.ip138.com/ic.asp dapat diganti dengan halaman web yang lebih cepat jsoup.connect ("http://1212.ip138.com/ic.asp"). Kembali Benar; } catch (Exception e) {return false; }} private int getCurrentProxynumber () {Daftar <RoxyInfo> proxyInfos = localproxyInfos.get (); if (proxyInfos == null) {proxyInfos = new ArrayList <RoxyInfo> (); localproxyinfos.set (proxyinfos); kembali 0; } else {return proxyInfos.size (); }} private void addProxy (string ip, port string, string protocol) {list <proxyInfo> proxyInfos = localproxyInfos.get (); if (proxyInfos == null) {proxyInfos = new ArrayList <RoxyInfo> (); proxyinfos.add (proxyinfo baru (IP, port, protokol)); } else {proxyInfos.add (proxyInfo baru (ip, port, protokol)); }}} class proxyInfo {private string username = ""; ip string pribadi; Private String Password = ""; tipe string pribadi; port string pribadi; private int is_internet = 1; proxyInfo publik (string ip, port string, tipe string) {this.ip = ip; this.type = type; this.port = port; } public string getUserName () {return username; } public void setusername (string username) {this.username = username; } string publik getIp () {return ip; } public void setip (string ip) {this.ip = ip; } public string getPassword () {return kata sandi; } public void setPassword (kata sandi string) {this.password = kata sandi; } public string getType () {return type; } public void setType (string type) {this.type = type; } public string getport () {return port; } public void setport (port string) {this.port = port; } public int getis_internet () {return is_internet; } public void setis_internet (int is_internet) {this.is_internet = is_internet; }} class proxyresponse {private string Success; peta pribadi <string, objek> data; string publik getsuccess () {return success; } public void setSucCess (String Success) {this.success = Success; } peta publik <String, Object> getData () {return data; } public void setData (peta <string, objek> data) {this.data = data; }}Contoh IP proxy proxy java merangkak adalah semua konten yang telah saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.