ilustrar
Este exemplo pode monitorar o botão Snap-up de Juhuasuan e aparecer automaticamente na página quando chegar a hora da coleta de pontos completos de Juhuasuan (o URL é definido por si só).
Você pode personalizar o monitoramento dos últimos minutos e também acelerar a velocidade de atualização através do multithreading.
Código -fonte
pacote com.itechZero.pricemonitor; importar java.io.bufferInputStream; importar java.io.bufferedReader; importar java.io.inputStreamReader; importar java.io.inputStreamReader; importar java.io.OutputStreamWriter; importar java.net.uri; importar java.net.url; importar java.net.urlConnection; importar java.text.simpledateFormat; importar java.util.date; / ** * Pricemonitor.java * * @Author TechZero * @Email [email protected] * @Time 2014-5-21 13:24:30 */ classe Mythread Extends Thread {public void run () {Try {// O parâmetro aqui é o número de minutos do Monitoring Pricemonitor.MonitorButton. } catch (Exceção e) {e.printStackTrace (); }}}}; classe pública Pricemonitor {// O produto monitorado url privado estático string url = "http://detail.ju.taobao.com/home.htm?spm=608.2214381.3.1.adpejn&item_id=38260927591.3 // Botão de monitoramento Public Static void MonitorButton (int lastMinute) {int NowMinute = Integer.parseint (novo SimpleDateFormat ("mm"). Formato (new Date ())); int endMinute = Integer.parseint (new SimpleDateFormat ("mm"). formato (new Date ())) + LastMinute; while (NowMinute <endMinute) {NowMinute = Integer.Parseint (new SimpleDateFormat ("mm"). formato (new Date ())); Resultado da string [] = getCurrentButtonAndForm (URL, "GB2312"). Split (","); // Status do botão atual String currentButton = resultado [0]; // pegue o formulário imediatamente // formulário de string = resultado [1]; String nowime = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"). Formato (new Date ()); System.out.println (NowTime + " - agora o botão é" + currentButton); if (currentButton == "Get Now" || CurrentButton.equals ("Get Now") || CurrentButton == "Get Now" || CurrentButton.equals ("Get Now")) {System.out.println ("Get Now!"); tente {java.awt.desktop.getdesktop (). Browse (novo URI (URL)); } catch (Exceção e) {e.printStackTrace (); } // doPost (form); quebrar; } else if (currentButton == "esgotado" || CurrentButton.equals ("esgotado") || currentButton.equals ("Ended") || currentButton.equals ("terminou")) {System.out.println ("tente novamente na próxima vez!"); quebrar; } else {System.out.println ("ainda não começou, espere!"); }}} // Obtenha o status do botão atual public static string getCurrentButtonAndForm (URL da string, codificação de string) {if (url == null || "" .equals (url.trim ())) retornar nulo; String buttonState = ""; StringBuffer Content = new StringBuffer (); Boolean FormFlag = false; tente {// crie um novo objeto URL U = novo URL (URL); InputStream é = new bufferInputStream (u.openstream ()); InputStreamReader thehtml = new InputStreamReader (IS, codificação! = Null? Encoding: "gb2312"); BufferredReader BR = new BufferredReader (theHtml); String s = ""; while ((s = B.readline ())! = null) {if (s.IndexOF ("<tipo de entrada =/" submT/"class =/" BuyAction j_buysubMit/"title =/" Grab/"value =/" Grab/"/>")! = -1) {Buttonstate = "Grab/"; } else if (s.IndexOF ("<a href =/"#/"class =/" Aviso extra j_buybuttonsub/"> Lembrete de abertura da equipe </a>")! = -1) {buttonstate = "Lembrete de abertura da equipe"; } else if (s.IndexOf ("<div class = /" main -box acaso /">")! = -1) {buttonstate = "esgotado"; } else if (s.IndexOF ("<span class =/" out floatright/"> esgotado ... </span>")! = -1) {buttonstate = "esgotado"; } else if (s.IndexOF ("<span class =/" out floatright/"> terminou ... </span>")! = -1) {buttonstate = "terminou"; } if (s.IndexOF ("<formulário de formulário =/" j_buysubform/"data-ccb =/" 0/"data-ques =/" 0/"ação")! = -1) {content.append (s + "/r/n"); formFLAG = true; } if (formFLAG == true) {if (s.IndexOf ("<nome de entrada =/'_ tb_token_/' type =/'hidden/' value")! = -1) {content.append (s + "/r/n"); } if (s.IndexOF ("<Tipo de entrada =/" Hidden/"Nome =/" _ input_charset/"value")! = -1) {content.append (s + "/r/n"); } if (s.IndexOF ("<Tipo de entrada =/" Hidden/"Nome =/" ItemId/"Value")! = -1) {content.append (S + "/R/N"); } if (s.IndexOF ("<Tipo de entrada =/" Hidden/"Nome =/" Id/"Value")! = -1) {Content.append (S + "/R/N"); } if (s.IndexOF ("<Tipo de entrada =/" Hidden/"Nome =/" Id/"Value")! = -1) {Content.append (S + "/R/N"); } if (s.IndexOF ("<Tipo de entrada =/" Hidden/"Nome =/" Tgtype/"Value")! = -1) {Content.append (S + "/R/N"); } if (s.IndexOF ("<Tipo de entrada =/" submT/"class =/" BuyAction j_buysubMit/"")! = -1) {content.append (s + "/r/n"); } if (s.IndexOF ("<div class =/" time -banner/">")! = -1) {content.append (s + "/r/n"); }} if (s.IndexOF ("<div class =/" time -banner/">")! = -1) {break; }} Br.Close (); } catch (Exceção e) {System.err.println (e); retornar "Erro de URL aberto"; } retornar ButtonState + "," + Content; } // Envie o formulário public static string DoPost (formulário da string) {StringBuffer content = new StringBuffer (); tente {urlConnection conexão = novo url (url) .openconnection (); Connection.SetDoOutput (true); OutputStreamWriter OS = novo outputStreamWriter (Connection.getOutputStream (), "UTF-8"); os.Write (form); os.flush (); os.close (); InputStream is = Connection.getInputStream (); InputStreamReader thehtml = new InputStreamReader (IS); BufferredReader BR = new BufferredReader (theHtml); String s = ""; while ((S = Br.ReadLine ())! = NULL) {Content.Append (S + "/R/N"); }} catch (Exceção e) {e.printStackTrace (); } // retorna o conteúdo da página retornado após o envio do formulário Return Content.ToString (); } // Faça login public static void dologin (nome de usuário da String, String senha) {String Form = "<Formulário ID =/" J_StaticForm/"Action =/" https://login.taobao.com/member/Login.jhtml/ "Method =/" Post/"AutoComplete =/" On//"/"/"/"/"" id =/"tpl_username_1/" value =/"" " + nome de usuário +"/"> <tipo de entrada =/" senha/"name =/" tpl_password/"id =/" tpl_password_1/"value =/" "" + senha + "/"> <input Type =/"Hidden/" idep =/"J_TPL_T_T_T_TL_T_LENTE Valor =/"http://www.taobao.com/?spm=A2107.1.1000340.1.al2mpn/"> <botão Tipo =/"submit/" id =/"j_submitstic/"> login </button> </fort> "; DoPost (form); } public static void main (string [] args) {// dologin (); // new mythread (). start (); // new mythread (). start (); // new mythread (). start (); // new mythread (). start (); // new mythread (). start (); }}
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.