zoukankan      html  css  js  c++  java
  • 实验室抢号神器

    package Step1;
    
    import java.util.Calendar;
    
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.methods.GetMethod;
    /**
     * 
        * @ClassName: quhao 
        * @Description:  实验室抢号神器
        * @author 泽泽
        * @date 2015年11月10日 下午2:51:31 
        *
     */
    public class quhao {
    
        private static int hour;
        private static int minute;
        private static int second;
        private static Calendar c;
        private static String Url = "http://219.229.132.37:8080/AjaxService/qh.ashx";
        private static String cookie = "ASP.NET_SessionId=12pedxyggbpf3x2v1kg0xv55";// 预先设定cookie值
        private static int sleeptime = 10;// 设置刷新频率,单位毫秒
    
        public static void main(String[] args) throws InterruptedException {
    
            // 等待抢票时间,刷新时间为60S
            while (true) {
                setTime();// 获取当前时间
                // 开始抢票时间8:18或11:58
                if (hour == 8 && minute >= 18 || hour == 11 && minute >= 58)
                    break;
                System.out.println(hour + ":" + minute + ":" + second + " 现在不是抢号时间段。请稍后...");
                Thread.sleep(30000);// 30S刷新时间
            }
            int count = 1;
    
            // 开始抢票
            while (true) {
                setTime();
                System.out.println("当前取号次数" + count + "次   " + hour + ":" + minute + ":" + second);
                func();
                Thread.sleep(sleeptime); // 请求时间间隔
                count++;
                if (hour == 8 && minute >= 25 || hour == 12 && minute >= 10) {
                    System.out.println("此轮抢号结束");
                    break;
                }
    
            }
        }
    
        private static void func() {
            HttpClient httpClient = new HttpClient();
            try {
                GetMethod getMethod = new GetMethod(Url);
                getMethod.getParams().setContentCharset("utf-8");
                // 每次访问需授权的网址时需 cookie 作为通行证
                getMethod.setRequestHeader("cookie", cookie);
                getMethod.setRequestHeader("Accept-Language", "zh-cn");
                getMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0) QQBrowser/9.2.5063.400");
                int statusCode = httpClient.executeMethod(getMethod);// 返回状态码200为成功,500为服务器端发生运行错误
                System.out.println("返回状态码:" + statusCode);
                // 打印出返回数据,检验一下是否成功
                String result = getMethod.getResponseBodyAsString();
                if (statusCode == 500)
                    System.out.println("服务器发生错误");
                else
                    System.out.println(result);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        private static void setTime() {// 获取当前时间
            c = Calendar.getInstance();
            hour = c.get(Calendar.HOUR_OF_DAY);
            minute = c.get(Calendar.MINUTE);
            second = c.get(Calendar.SECOND);
        }
    }

     Python版:

    # -*- coding:utf-8 -*-  
    import urllib2
    import time
    
    def quhao():
        url="http://219.229.132.37:8080/AjaxService/qh.ashx"
        send_headers={"Accept":"*/*",
                "Referer": "http://219.229.132.37:8080/Default.aspx",
                "Accept-Language": "zh-cn",
                "Accept-Encoding": "gzip, deflate",
                "User-Agent": "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0) QQBrowser/9.2.5063.400",
                "Host": "219.229.132.37:8080",    
        }
        cookies= "ASP.NET_SessionId=ff3uelme0mj1uwnqcfegfrup; "
        send_headers['Cookie']=cookies
        req = urllib2.Request(url,headers=send_headers)
        r = urllib2.urlopen(req)
        html = r.read()
        html = html.decode('utf-8','replace')
        return html
    
    print quhao()
    timestruct=time.localtime()
    
    while(not ((timestruct.tm_hour==8 and timestruct.tm_min>17 and timestruct.tm_min<25) or ((timestruct.tm_hour==11 and timestruct.tm_min>57) or (timestruct.tm_hour==12 and timestruct.tm_min<5)))):
        print u"还未到抢票时间"
        print time.strftime('%Y-%m-%d %H:%M:%S')
        time.sleep(60)
        timestruct=time.localtime()
        
    timestruct=time.localtime()
    count=1
    if((timestruct.tm_hour==8 and timestruct.tm_min>17 and timestruct.tm_min<25) or ((timestruct.tm_hour==11 and timestruct.tm_min>58) or (timestruct.tm_hour==12 and timestruct.tm_min<5))):
        while(True):
            try:
                html=quhao()
                print html
                time.sleep(0.3)
                print u"正在尝试第"+str(count)+u"次取票"
                count=count+1
                if count>1000:
                    input_raw()
            except Exception , e:
                print e
    else:
        print u"不在取票时间段内"
        
  • 相关阅读:
    SharePoint 2019
    SharePoint 2019 图文安装教程
    SharePoint 2016 服务器部署(七)SharePoint 和OOS 集成
    如何将域中的AD数据导入SharePoint
    SharePoint 2016 图文安装教程 后面有激活序列号、密钥分享
    Github上优秀的.NET Core项目
    SQL Server删除/创建复制订阅失败,报15517错误问题的处理
    vue-devtools 开发工具的安装
    laravel 查询数据toArray内层无法转换的问题
    KindEditor 增加html标签
  • 原文地址:https://www.cnblogs.com/zeze/p/4953062.html
Copyright © 2011-2022 走看看