Basta usar um arquivo java e executar o método principal. Os pacotes JAR para depender são com.alibaba.fastjson (versão 1.2.28) e jsoup (versão 1.10.2)
Se você usa POM, os dois seguintes são:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version></dependency><dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.2</version></dependency>
O código completo é o seguinte:
pacote com.tuniu.fcm.facade.ipproxy; importar com.alibaba.fastjson.jsonObject; importar org.jsoup.jsoup; importar org.jsoup.nodes.document; importar java.util.arraylist; java.util.aShMap; importar jAVA.ILT.IliT.IliT.IliT.IliT.IlvA.ilm; java.util.regex.matcher; importar java.util.regex.pattern;/** * Para obter o proxy IP, você precisa * com.alibaba.fastjson.jsonObject e jsoup */public class LocalwwwwernEnTeruNusedVpn {ThreadBalMalum>)/public Class LocalwWWWWWW; Threadlocal <List <ProxyInfo>> localProxyInfos = new Threadlocal <LIST <LISTA <proxyinfo>> (); public static void main (string [] args) {proxycralwerunusedvpn proxycrawler = novo proxycralwerunusedVpn; /*** O número de IPs proxy a ser obtido deve ser especificado pelo Demander. (Se houver muitos, o retorno desacelerará) */ proxycrawler.startcrawler (1); } / *** exposto à entrada para chamadas de módulo externo* @param desejou o número de proxy ips que o chamador espera obter* / public string string 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.kuaapaaili.com/free/inha/", 15); kuaidailicom ("http://www.kuaapaaili.com/free/intr/", 15); kuaidailicom ("http://www.kuaapaaili.com/free/outtr/", 15); / *** Construct Return Data*/ ProxyResponse Response = new ProxyResponse (); Response.SetSuccess ("True"); Mapa <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 (resposta) .toString (); System.out.println (ResponsEstring); retornar responsestring; } private void kuaidailicom (string baseurl, int totalpage) {string ipreg = "//d {1,3 }//.//d {1,3a }//.//d {1,3 }//.//dd) Padrão ipptn = padring.compile (ipreg); for (int i = 1; i <totalpage; i ++) {if (getCurrentProxynumber ()> = localwantEdNumber.get ()) {return; } tente {document doc = jsoup.connect (baseurl + i + "/") .header ("aceitar", "text/html, aplicação/xhtml + xml, aplicação/xml; q = 0.9, imagem/webp,*/*; q = 0.8) .Header (" Accept-oncoding "" Gzip, Gzip,*/*; "ZH-CN, ZH; q = 0,8, en; q = 0,6") .Header ("Controle de cache", "max-Ara = 0") .Header ("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) Applewebkit/537.36 (KhtmM; Safari/537.36 ") .Header (" Cookie "," HM_LVT_7ED65B1CC4B810E9FD37959C9BB51B31 = 14628122244; "www.kuaidaili.com") .header ("referente", "http://www.kuaidaili.com/free/outha/") .Timeout (30 * 1000) .get (); Matcher M = ippptn.matcher (doc.text ()); while (m.find ()) {if (getCurrentProxynumber ()> = localwantEdNumber.get ()) {break; } String [] strs = M.Group (). Split (""); if (checkproxy (strs [0], inteiro.parseint (strs [1]))) {System.out.println ("Obtenha o proxy ip/t" + strs disponível [0] + "/t" + strs [1]); addProxy (STRS [0], STRS [1], "http"); }}} catch (Exceção e) {e.printStackTrace (); }}} Private estático booleano checkproxy (string ip, porta inteira) {try {//http://1212.ip138.com/ic.asp pode ser substituído por qualquer página da web mais rápida. retornar true; } catch (Exceção e) {return false; }} private int getCurrentProxynumber () {list <proxyinfo> proxyinfos = localProxyInfos.get (); if (proxyInfos == null) {proxyInfos = new ArrayList <ProxyInfo> (); localProxyInfos.Set (proxyinfos); retornar 0; } else {return proxyinfos.size (); }} private void addProxy (string ip, porta string, protocolo de string) {list <proxyInfo> proxyinfos = localProxyInfos.get (); if (proxyInfos == null) {proxyInfos = new ArrayList <ProxyInfo> (); proxyinfos.add (novo proxyinfo (ip, porta, protocolo)); } else {proxyinfos.add (novo proxyinfo (ip, porta, protocolo)); }}} classe proxyinfo {private string userrername = ""; private string ip; private string senha = ""; tipo de sequência privada; porta de sequência privada; private int is_internet = 1; public proxyinfo (string ip, porta string, string tipo) {this.ip = ip; this.type = type; this.port = porta; } public string getUserName () {return userName; } public void setUserName (string userName) {this.username = nome de usuário; } public string getip () {return ip; } public void setip (string ip) {this.ip = ip; } public string getPassword () {return senha; } public void setPassword (string senha) {this.password = senha; } public string getType () {return type; } public void setType (string type) {this.type = type; } public string getport () {return porta; } public void Setport (porta String) {this.port = porta; } public int getis_internet () {return is_internet; } public void Setis_internet (int is_internet) {this.is_internet = is_internet; }} classe ProxyResponse {Private String Success; mapa privado <string, objeto> dados; public string getsuccess () {return Success; } public void SetSuccess (String success) {this.success = succcess; } mapa público <string, object> getData () {retornar dados; } public void setData (map <string, object> data) {this.data = data; }}O exemplo acima do proxy proxy do Java Proxy IP é todo o conteúdo que compartilhei com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.