يوضح
يمكن أن يراقب هذا المثال زر Juhuasuan المسبق ، ويظهر تلقائيًا الصفحة عندما يصل وقت جمع النقطة الكاملة لـ Juhuasuan (يتم تعريف عنوان URL بمفرده).
يمكنك تخصيص مراقبة الدقائق القليلة الماضية ، وأيضًا تسريع سرعة التحديث من خلال MultiTreading.
رمز المصدر
حزمة com.itechzero.pricmonitor ؛ استيراد java.io.bufferedInputStream ؛ استيراد java.io.bufferedreader ؛ استيراد java.io.inputstreamreader ؛ استيراد java.io.inputstreamreader ؛ استيراد java.io.outputStreamWriter ؛ استيراد java.net.uri ؛ استيراد java.net.url ؛ استيراد java.net.urlconnection ؛ استيراد java.text.simpledateformat ؛ استيراد java.util.date ؛ / ** * pricemonitor.java * * Author Techzero * eMail [email protected] * @ttime 2014-5-21 1:24:30 PM */ class myThread يمتد Thread {public void run () } catch (استثناء e) {E.PrintStackTrace () ؛ }}}} ؛ Public Class Pricemonitor {// عنوان URL الخاص بالمنتج المراقب url url = "http://detail.ju.taobao.com/home.htm؟spm=608.2214381.3.1.adpejn&item_id=38260927591&id=10000002789" ؛ . int endminute = integer.parseint (جديد simpleatformat ("mm"). التنسيق (تاريخ جديد ())) + lastMinute ؛ بينما (nowminute <endminute) {nowminute = integer.parseint (جديد simpleateformat ("mm"). التنسيق (تاريخ جديد ())) ؛ نتيجة السلسلة [] = getCurrentButtonAndform (url ، "gb2312"). split ("،") ؛ // Current Button Status String CurrentButton = النتيجة [0] ؛ // الاستيلاء على النموذج على الفور // نموذج السلسلة = النتيجة [1] ؛ String NowTime = جديد SimplEdateFormat ("Yyyy-MM-DD HH: MM: SS"). Format (Date ()) ؛ System.out.println (Nowtime + " - الآن الزر" + CurrentButton) ؛ if (currentbutton == "get now" || currentbutton.equals ("get now") || currentbutton == "get now" || currentbutton.equals ("get now") {system.out.println ("get now!") ؛ حاول {java.awt.desktop.getDesktop (). Browse (new uri (url)) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } // dopost (form) ؛ استراحة؛ } آخر إذا (CurrentButton == "SOLT OUT" || CurrentButton.equals ("sold Out") || currentbutton.equals ("ended") || currentbutton.equals ("ended")) {system.out.println ("حاول مرة أخرى في المرة القادمة!") ؛ استراحة؛ } آخر {system.out.println ("لم يتم البدء بعد ، انتظر!") ؛ }}} // احصل على حالة الزر الحالية static static getCurrentButtonAndform (url url سلسلة ، ترميز السلسلة) {if (url == null || ".equals (url.trim ())) String ButtonState = "" ؛ stringBuffer content = new StringBuffer () ؛ boolean formflag = false ؛ حاول {// إنشاء url url url url u = url جديد (url) ؛ InputStream هو = جديد bufferedInputStream (U.OpenStream ()) ؛ inputStreamReader thehtml = new inputStreamReader (IS ، الترميز! = null؟ الترميز: "GB2312") ؛ BufferedReader BR = جديد BufferedReader (thehtml) ؛ سلسلة s = "" ؛ بينما ((s = br.readline ())! = null) {if ( } آخر إذا (S.Indexof ("<a href =/"#/"class =/" extra notion j_buybuttonsub/"> team exply the team the </a>")! = -1) {buttonState = "Team Open Reminder" ؛ } آخر إذا (s.indexof ("<div class = /" main -box فرصة /">")! = -1) {buttonState = "Sold Out" ؛ } آخر إذا (s.indexof ("<span class =/" out floatright/"> silat Out ... </span>")! = -1) {buttonState = "Sold Out" ؛ } آخر إذا (s.indexof ("<span class =/" out floatright/"> انتهى ... </span>")! = -1) {buttonstate = "ended" ؛ } if (s.indexof ("<<form class =/" j_buysubform/"data-ccb =/" 0/"data-ques =/" 0/"action")! = -1) {content.append (s + "/r/n") ؛ formflag = صحيح ؛ } if (formflag == true) {if (s.indexof ("<input name =/'_ tb_token_/' type =/'hidden/' value")! = -1) {content.append (s + "/r/n") ؛ } if (s.indexof ("<input type =/" hidden/"name =/" _ input_charset/"value")! = -1) {content.append (s + "/r/n") ؛ } if (s.indexof ("<input type =/" hidden/"name =/" itemID/"value")! = -1) {content.append (s + "/r/n") ؛ } if (s.indexof ("<input type =/" hidden/"name =/" id/"value")! = -1) {content.append (s + "/r/n") ؛ } if (s.indexof ("<input type =/" hidden/"name =/" id/"value")! = -1) {content.append (s + "/r/n") ؛ } if (s.indexof ("<input type =/" hidden/"name =/" tgtype/"value")! = -1) {content.append (s + "/r/n") ؛ } if (S.Indexof ("<input type =/" submit/"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 (استثناء e) {system.err.println (e) ؛ إرجاع "Open URL Error" ؛ } إرجاع ButtonState + "،" + محتوى ؛ }. حاول {urlConnection Connection = url جديد (url) .OpenConnection () ؛ connection.setDooutput (true) ؛ OutputStreamWriter OS = New OutputStreamWriter (connection.getOutputStream () ، "UTF-8") ؛ OS.Write (form) ؛ os.flush () ؛ OS.Close () ؛ inputStream هو = connection.getInputStream () ؛ inputStreamReader thehtml = new inputStreamReader (IS) ؛ BufferedReader BR = جديد BufferedReader (thehtml) ؛ سلسلة s = "" ؛ بينما ((s = br.readline ())! = null) {content.append (s + "/r/n") ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ } // إرجاع محتوى الصفحة الذي تم إرجاعه بعد إرسال النموذج Return Content.ToString () ؛ }. ID =/"TPL_USERNAME_1/" value =/"" + username + "/"> <إدخال نوع =/"كلمة المرور/" name =/"tpl_password/" id =/"tpl_password_1/" value =/"" value =/"http://www.taobao.com/؟spm=A2107.1.1000340.1.AL2MPN/"> <button type =/"submit/" id =/"j_submitstatic/"> login </utton> </form> "؛ dopost (شكل) ؛ } public static void main (string [] args) {// dologin () ؛ // new MyThread (). start () ؛ // new MyThread (). start () ؛ // new MyThread (). start () ؛ // new MyThread (). start () ؛ // new MyThread (). start () ؛ }}
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.