อธิบาย
ตัวอย่างนี้สามารถตรวจสอบปุ่ม snap-up ของ Juhuasuan และปรากฏขึ้นโดยอัตโนมัติเมื่อเวลาของการรวบรวมจุดเต็มจุดของ Juhuasuan มาถึง (URL ถูกกำหนดด้วยตัวเอง)
คุณสามารถปรับแต่งการตรวจสอบในช่วงไม่กี่นาทีที่ผ่านมาและยังเร็วขึ้นความเร็วในการรีเฟรชผ่านมัลติเธรด
รหัสต้นฉบับ
แพ็คเกจ com.itechzero.pricemonitor; นำเข้า 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] * @time 2014-5-21 1:24:30 PM */ Class MyThread ขยายเธรด {Public Void Run () {ลอง {// พารามิเตอร์ที่นี่คือจำนวนนาทีของการตรวจสอบ } catch (exception e) {e.printstacktrace (); - ระดับสาธารณะ pricemonitor {// ผลิตภัณฑ์ที่ได้รับการตรวจสอบ URL url สตริงคงที่ส่วนตัว = "http://detail.ju.taobao.com/home.htm?spm=608.2214381.3.1.adpejn&item_id=38260927592759 // การตรวจสอบปุ่มโมฆะแบบคงที่สาธารณะ Monitorbutton (int lastminute) {int nowminute = integer.parseint (ใหม่ SimpledateFormat ("MM") รูปแบบ (วันที่ใหม่ ()); int endminute = integer.parseint (ใหม่ SimpledateFormat ("MM") รูปแบบ (วันที่ใหม่ ())) + lastminute; ในขณะที่ (nowminute <endminute) {nowminute = integer.parseint (ใหม่ simpledateFormat ("mm") รูปแบบ (วันที่ใหม่ ())); สตริงผลลัพธ์ [] = getCurrentButtonandform (url, "GB2312"). แยก (","); // สถานะปุ่มปัจจุบันสตริง CurrentButton = ผลลัพธ์ [0]; // คว้าแบบฟอร์มทันที // ฟอร์มสตริง = ผลลัพธ์ [1]; String Nowtime = new SimpledateFormat ("YYYY-MM-DD HH: MM: SS") รูปแบบ (วันที่ใหม่ ()); System.out.println (Nowtime + " - ตอนนี้ปุ่มคือ" + CurrentButton); if (currentbutton == "รับตอนนี้" || currentbutton.equals ("รับตอนนี้") || currentbutton == "รับตอนนี้" || currentbutton.equals ("รับทันที")) {system.out.println ("รับทันที!"); ลอง {java.awt.desktop.getdesktop (). เรียกดู (uri ใหม่ (url)); } catch (exception e) {e.printstacktrace (); } // dopost (แบบฟอร์ม); หยุดพัก; } อื่นถ้า (currentbutton == "ขายหมด" || currentbutton.equals ("ขายหมด") || currentbutton.equals ("สิ้นสุด") || currentbutton.equals ("สิ้นสุด")) {system.out.println ("ลองอีกครั้งในครั้งต่อไป!"); หยุดพัก; } else {system.out.println ("ยังไม่เริ่มรอ!"); }}} // รับสถานะปุ่มปัจจุบันสตริงสาธารณะคงที่ getCurrentButtonandform (url สตริง, การเข้ารหัสสตริง) {ถ้า (url == null || "" .equals (url.trim ())) ส่งคืน null; สตริง buttonState = ""; StringBuffer Content = new StringBuffer (); Boolean FormFlag = FALSE; ลอง {// สร้าง URL Object URL ใหม่ U = ใหม่ URL (URL); InputStream คือ = ใหม่ bufferedInputStream (U.OpenStream ()); InputStreamReader thehtml = new InputStreamReader (คือ, การเข้ารหัส! = null? การเข้ารหัส: "GB2312"); bufferedReader br = bufferedreader ใหม่ (Thehtml); สตริง s = ""; ในขณะที่ ((s = br.readline ())! = null) {ถ้า (s.indexof ("<อินพุตประเภท =/" subment/"class =/" buyAction j_buysubmit/"title =" grab/"value =" grab/"/>")! } อื่นถ้า (s.indexof ("<a href =/"#/"class =/" ประกาศพิเศษ j_buybuttonsub/"> การแจ้งเตือนการเปิดทีม </a>")! = -1) {buttonState = "การเตือนการเปิดทีม"; } อื่นถ้า (s.indexof ("<div class = /" โอกาสกล่องหลัก /">")! = -1) {buttonState = "ขายหมด"; } อื่นถ้า (s.indexof ("<span class =/" ออก floatright/"> ขายหมด ... </span>")! = -1) {buttonState = "ขายหมด"; } อื่นถ้า (s.indexof ("<span class =/" out floatright/"> สิ้นสุด ... </span>")! = -1) {buttonState = "สิ้นสุด"; } if (s.indexof ("<form class =/" j_buysubform/"data-ccb =/" 0/"data-ques =/" 0/"action")! = -1) {content.append (s + "/r/n"); formFlag = true; } if (formFlag == true) {if (s.indexof ("<name input =/'_ tb_token_/' type =/'hidden/' value")! = -1) {content.append (s + "/r/n"); } if (s.indexof ("<อินพุต type =/" hidden/"name =/" _ input_charset/"value")! = -1) {content.append (s + "/r/n"); } if (s.indexof ("<อินพุต type =/" hidden/"name =" itemid/"value")! = -1) {content.append (s + "/r/n"); } if (s.indexof ("<อินพุต type =/" hidden/"name =" id/"value")! = -1) {content.append (s + "/r/n"); } if (s.indexof ("<อินพุต type =/" hidden/"name =" id/"value")! = -1) {content.append (s + "/r/n"); } if (s.indexof ("<อินพุต type =/" hidden/"name =" tgtype/"value")! = -1) {content.append (s + "/r/n"); } if (s.indexof ("<อินพุต 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 (exception e) {system.err.println (e); ส่งคืน "Open URL Error"; } ส่งคืน ButtonState + "," + เนื้อหา; } // ส่งแบบฟอร์มสตริงคงที่ public String (แบบฟอร์มสตริง) {StringBuffer Content = new StringBuffer (); ลอง {urlConnection connection = url ใหม่ (url) .openconnection (); Connection.setDooutput (จริง); OutputStreamWriter OS = new OutputStreamWriter (Connection.getOutputStream (), "UTF-8"); OS.WRITE (แบบฟอร์ม); 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 (exception e) {e.printstacktrace (); } // ส่งคืนเนื้อหาหน้าส่งคืนหลังจากส่งแบบฟอร์มส่งคืนเนื้อหา. toString (); } // เข้าสู่ระบบโมฆะแบบคงที่สาธารณะ (ชื่อผู้ใช้สตริง, รหัสผ่านสตริง) {String Form = "<form id =/" j_staticform/"action =/" https://login.taobao.com/member/login.jhtml/ "method =/" post/"autocomplete =/" on/" id =/"tpl_username_1/" value =/"" + ชื่อผู้ใช้ + "/"> <อินพุตประเภท =/"รหัสผ่าน/" ชื่อ =/"tpl_password/" id =/"tpl_password_1/" value = "" รหัสผ่าน + "/" value =/"http://www.taobao.com/?spm=a2107.1.1000340.1.al2mpn/"> <button type =/"subment/" id = "j_submitstatic/"> login </button> </form> "; dopost (แบบฟอร์ม); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// dologin (); // ใหม่ MyThread (). start (); // ใหม่ MyThread (). start (); // ใหม่ MyThread (). start (); // ใหม่ MyThread (). start (); // ใหม่ MyThread (). start (); -
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น