Просто используйте файл Java и запустите основной метод. Пакеты JAR, от которых можно зависеть от Com.alibaba.fastjson (версия 1.2.28) и JSoup (версия 1.10.2)
Если вы используете POM, то следующие два:
<dependency> <groupid> com.alibaba </groupid> <artifactid> fastjson </artifactid> <sersive> 1.2.28 </version> </dependency> <dehydency> <groupid> org.jsoup </GroupId> <Artifactid> jsoup </artifactid> <serview> 1.10.2 <версии> </artifact> jsoup </artifactid> <serview> 1.10.2 <версия> </artifactdency> </artifactid> <serse> 1.10.2 <версия>
Полный код заключается в следующем:
Пакет com.tuniu.fcm.facade.ipproxy; import com.alibaba.fastjson.jsonobject; импорт org.jsoup.jsoup; импорт org.jsoup.nodes.document; импорт java.util.arraylist; импорт java.util.hashmap; импорт java.util.list. java.util.regex.matcher; import java.util.regex.pattern;/** * Чтобы получить прокси IP, вам нужен * com.alibaba.fastjson.jsonObject и jsoup */public class proxycralwerunusedvpn {threadlocal <Integer> localwantnumber = newlocal {integer> localwantnumber = newlocal {integer> localwantnumber =; Threadlocal <list <proxyinfo >> localproxyinfos = new Threadlocal <list <proxyinfo >> (); public static void main (string [] args) {proxycralwerunusedvpn proxycrawler = new proxycralwerunusedvpn; /*** Количество полученных прокси -IPS должно быть указано Демандером. (Если их слишком много, возврат замедлится) */ proxycrawler.startcrawler (1); } / *** подвергается воздействию входа в внешние вызовы модуля* @param разыгрывает количество прокси -IPS, которое вызывает вызывающий абонент. 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"); Map <string, object> datainfomap = new Hashmap <String, Object> (); datainfomap.put ("numfound", localproxyinfos.get (). size ()); datainfomap.put ("pagenum", 1); datainfomap.put ("proxy", localproxyinfos.get ()); response.setData (dataInfomap); String responseString = jsonObject.tojson (response) .toString (); System.out.println (Ответственный); возврат отвечает; } private void kuaidailicom (string baseurl, int totalpage) {string ipreg = "//d{1,3 )//.//d{1,3 )//.//d {1,300//./d{1,300//./d{1,3} // d {1,6}"; Шаблон ipptn = pattern.compile (ipreg); for (int i = 1; i <totalPage; i ++) {if (getCurrentProxynumber ()> = localwantedNumber.get ()) {return; } try {document doc = jsoup.connect (baseurl + i + "/") .header ("accept", "text/html, application/xhtml + xml, application/xml; q = 0,9, изображение/webp,*/*; q = 0,8") .Header ("Accept-encoding", gzip, deflate, sounchdch). "ZH-CN, ZH; Q = 0,8, en; q = 0,6") .Header ("Cache-Control", "Max-Age = 0") .Header ("пользователь-агент", "Mozilla/5,0 (Macintosh; Intel Mac OS x 10_11_4) AppleWebkit/537.36 (khtml, например, gecko) chrome). SAFARI/537.36 ") .Header (" cookie "," HM_LVT_7ED65B1CC4B810E9FD37959C9BB51B31 = 1462812244; _GAT = 1; _GA = GA1.2.1061361785.146281244444 ")", ", HISTAREDER", ",", HISTAREDER ") "www.kuaidaili.com") .header ("Реферат", "http://www.kuaidaili.com/free/outha/") .timeout (30 * 1000) .get (); Matchter 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 («Get доступен прокси 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) {try {//http://1212.ip138.com/ic.asp можно заменить на любую более высокую веб -страницу jsoup.connect ("http://1212.ip138.com/ic.asp") .timeout (2 * 1000). вернуть истину; } catch (Exception e) {return false; }} private int getCurrentProxynumber () {list <proxyinfo> proxyinfos = localproxyinfos.get (); if (proxyinfos == null) {proxyinfos = new Arraylist <proxyinfo> (); localproxyinfos.set (proxyinfos); возврат 0; } else {return proxyinfos.size (); }} private void AddProxy (String ip, String Port, String Protocol) {list <proxyinfo> proxyinfos = localproxyinfos.get (); if (proxyinfos == null) {proxyinfos = new Arraylist <proxyinfo> (); proxyinfos.add (new Proxyinfo (ip, порт, протокол)); } else {proxyinfos.add (new proxyinfo (ip, port, protocol)); }}} класс ProxyInfo {private String username = ""; частная строка IP; Private String Password = ""; частная строка типа; частный строковый порт; private int is_internet = 1; public proxyinfo (String ip, строковый порт, тип строки) {this.ip = ip; this.type = type; this.port = порт; } public String getUsername () {return username; } public void setUsername (string username) {this.username = username; } public String getip () {return ip; } public void setip (String ip) {this.ip = ip; } public String getPassword () {return пароль; } public void setPassword (String password) {this.password = password; } public String getType () {return Type; } public void settype (type string) {this.type = type; } public String getPort () {return Port; } public void setport (строковый порт) {this.port = port; } public int getis_internet () {return is_internet; } public void setis_internet (int is_internet) {this.is_internet = is_internet; }} класс ProxyResponse {Private String Success; частная карта <строка, объект> data; public String getSuccess () {return Success; } public void setSuccess (String Success) {this.Success = успех; } public map <string, object> getData () {return data; } public void setData (map <string, object> data) {this.data = data; }}Приведенный выше пример Java Proxy Proxy Proxy IP - это весь контент, которым я поделился с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.