说明
本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时自动弹开页面(URL自己定义)。
可以自定义监控持续分钟数,同时还可以通过多线程加快刷新速度。
源码
- packagecom.itechzero.pricemonitor;
- importjava.io.BufferedInputStream;
- importjava.io.BufferedReader;
- importjava.io.InputStream;
- importjava.io.InputStreamReader;
- importjava.io.OutputStreamWriter;
- importjava.net.URI;
- importjava.net.URL;
- importjava.net.URLConnection;
- importjava.text.SimpleDateFormat;
- importjava.util.Date;
- /**
- *PriceMonitor.java
- *
- *@authorTechzero
- *@Emailtechzero@163.com
- *@Time2014-5-21下午1:24:30
- */
- classMyThreadextendsThread{
- publicvoidrun(){
- try{
- //此处参数为监控持续分钟数
- PriceMonitor.monitorButton(10);
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- };
- publicclassPriceMonitor{
- //监控的商品URL
- privatestaticStringURL="http://detail.ju.taobao.com/home.htm?spm=608.2214381.3.1.AdPEjn&item_id=38260927591&id=10000002781939";
- //监视按钮
- publicstaticvoidmonitorButton(intlastMinute){
- intnowMinute=Integer.parseInt(newSimpleDateFormat("mm").format(newDate()));
- intendMinute=Integer.parseInt(newSimpleDateFormat("mm").format(newDate()))+lastMinute;
- while(nowMinute<endMinute){
- nowMinute=Integer.parseInt(newSimpleDateFormat("mm").format(newDate()));
- Stringresult[]=getCurrentButtonAndForm(URL,"gb2312").split(",");
- //当前按钮状态
- StringcurrentButton=result[0];
- //马上抢表单
- //Stringform=result[1];
- StringnowTime=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(newDate());
- System.out.println(nowTime+"-现在按钮是"+currentButton);
- if(currentButton=="马上抢"||currentButton.equals("马上抢")||currentButton=="还有机会"||currentButton.equals("还有机会")){
- System.out.println("赶紧下单!");
- try{
- java.awt.Desktop.getDesktop().browse(newURI(URL));
- }catch(Exceptione){
- e.printStackTrace();
- }
- //doPost(form);
- break;
- }elseif(currentButton=="卖光了"||currentButton.equals("卖光了")||currentButton.equals("已结束")||currentButton.equals("已结束")){
- System.out.println("下次再试吧!");
- break;
- }else{
- System.out.println("还没开始呢,再等等吧!");
- }
- }
- }
- //获取当前按钮状态
- publicstaticStringgetCurrentButtonAndForm(Stringurl,Stringencoding){
- if(url==null||"".equals(url.trim()))
- returnnull;
- StringbuttonState="";
- StringBuffercontent=newStringBuffer();
- booleanformFlag=false;
- try{
- //新建URL对象
- URLu=newURL(url);
- InputStreamis=newBufferedInputStream(u.openStream());
- InputStreamReadertheHTML=newInputStreamReader(is,encoding!=null?encoding:"gb2312");
- BufferedReaderbr=newBufferedReader(theHTML);
- Strings="";
- while((s=br.readLine())!=null){
- if(s.indexOf("<inputtype="submit"class="buyactionJ_BuySubmit"title="马上抢"value="马上抢"/>")!=-1){
- buttonState="马上抢";
- }elseif(s.indexOf("<ahref="#"class="extranoticeJ_BuyButtonSub">开团提醒</a>")!=-1){
- buttonState="开团提醒";
- }elseif(s.indexOf("<divclass="main-boxchance">")!=-1){
- buttonState="还有机会";
- }elseif(s.indexOf("<spanclass="outfloatright">卖光了…</span>")!=-1){
- buttonState="卖光了";
- }elseif(s.indexOf("<spanclass="outfloatright">已结束…</span>")!=-1){
- buttonState="已结束";
- }
- if(s.indexOf("<formclass="J_BuySubForm"data-ccb="0"data-ques="0"action")!=-1){
- content.append(s+"");
- formFlag=true;
- }
- if(formFlag==true){
- if(s.indexOf("<inputname='_tb_token_'type='hidden'value")!=-1){
- content.append(s+"");
- }
- if(s.indexOf("<inputtype="hidden"name="_input_charset"value")!=-1){
- content.append(s+"");
- }
- if(s.indexOf("<inputtype="hidden"name="itemId"value")!=-1){
- content.append(s+"");
- }
- if(s.indexOf("<inputtype="hidden"name="id"value")!=-1){
- content.append(s+"");
- }
- if(s.indexOf("<inputtype="hidden"name="tgType"value")!=-1){
- content.append(s+"");
- }
- if(s.indexOf("<inputtype="submit"class="buyactionJ_BuySubmit"")!=-1){
- content.append(s+"");
- }
- if(s.indexOf("</form>")!=-1){
- content.append(s+"");
- }
- }
- if(s.indexOf("<divclass="time-banner">")!=-1){
- break;
- }
- }
- br.close();
- }catch(Exceptione){
- System.err.println(e);
- return"OpenURLError";
- }
- returnbuttonState+","+content;
- }
- //提交表单
- publicstaticStringdoPost(Stringform){
- StringBuffercontent=newStringBuffer();
- try{
- URLConnectionconnection=newURL(URL).openConnection();
- connection.setDoOutput(true);
- OutputStreamWriteros=newOutputStreamWriter(connection.getOutputStream(),"UTF-8");
- os.write(form);
- os.flush();
- os.close();
- InputStreamis=connection.getInputStream();
- InputStreamReadertheHTML=newInputStreamReader(is);
- BufferedReaderbr=newBufferedReader(theHTML);
- Strings="";
- while((s=br.readLine())!=null){
- content.append(s+"");
- }
- }catch(Exceptione){
- e.printStackTrace();
- }
- //返回提交表单后返回的页面内容
- returncontent.toString();
- }
- //登录
- publicstaticvoiddoLogin(Stringusername,Stringpassword){
- Stringform="<formid="J_StaticForm"action="https://login.taobao.com/member/login.jhtml"method="post"autocomplete="on"><inputtype="text"name="TPL_username"id="TPL_username_1"value=""+username+""><inputtype="password"name="TPL_password"id="TPL_password_1"value=""+password+""><inputtype="hidden"id="J_TPL_redirect_url"name="TPL_redirect_url"value="http://www.taobao.com/?spm=a2107.1.1000340.1.AL2Mpn"><buttontype="submit"id="J_SubmitStatic">登 录</button></form>";
- doPost(form);
- }
- publicstaticvoidmain(String[]args){
- //doLogin();
- //newMyThread().start();
- //newMyThread().start();
- //newMyThread().start();
- //newMyThread().start();
- //newMyThread().start();
- //newMyThread().start();
- //newMyThread().start();
- newMyThread().start();
- }
- }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。
原文链接:http://blog.csdn.net/Techzero/article/details/26686283
相关文章
猜你喜欢
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10