java爬虫step2--模拟登陆和提交--oj代码自动提交

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

public class setHeaders {
    public static void main(String[] args) throws IOException {
        String cookieVal = getCookie();
        while(true) {
            postHtml(cookieVal);
            //break;
        }
    }
    public static String getCookie() throws IOException {
        String url = "http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Login/login";
        URL thisurl = new URL(url);
        HttpURLConnection UC = (HttpURLConnection) thisurl.openConnection();
        UC.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0");
        UC.setInstanceFollowRedirects(false);
        UC.addRequestProperty("Connection","keep-alive");
        UC.setDoOutput(true);
        UC.setDoInput(true);
        UC.setRequestMethod("POST");
        OutputStreamWriter out = null;
        out = new OutputStreamWriter(UC.getOutputStream());
        out.write("user_name=6431687826&password=6431687826");//6431687826
        out.flush();
        String cookieVal = UC.getHeaderField("Set-Cookie");
        cookieVal = cookieVal.split(";")[0];
        out.close();

        return cookieVal;
    }
    private static void postHtml(String cookieVal) throws IOException {
        // TODO Auto-generated method stub
        System.out.println(cookieVal);
        URL xx = new URL("http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Solution/submitsolution/pid/1000.html");
        HttpURLConnection con = (HttpURLConnection)xx.openConnection();
        con.setRequestProperty("Cookie",cookieVal);
        con.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0");
        con.setDoOutput(true);
        con.setDoInput(true);

        OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());
        out.write("pid=1000&lang=g%2B%2B&code=%23include+%3Cstdio.h%3E%0D%0A%23include+%3Ciostream%3E%0D%0Ausing+namespace+std%3B%0D%0A%0D%0Aint+main%28%29%0D%0A%7B%0D%0A+++++int+a%2Cb%3B%0D%0A+++++cin%3E%3Ea%3E%3Eb%3B%0D%0A+++++cout%3C%3Ca%2Bb%3C%3Cendl%3B%0D%0A%7D%0D%0A");
        out.flush();
        out.close();
        //不知为什么不读取提交不成功
        try {
            InputStream xxin = con.getInputStream();
            byte[] bt = new byte[1024];
            int num = 0;
            String html = "";
            while((num = xxin.read(bt))!=-1) {
                html += new String(bt,0,num,"utf-8");
            }
        }catch (Exception e) {
            // TODO: handle exception
        }
        //System.out.println(html);
    }


    private static void getHtml(String url) throws IOException {
        // TODO Auto-generated method stub
        URL thisUrl = new URL(url);
        URLConnection UC = thisUrl.openConnection();
        UC.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0");
        UC.connect();
        InputStream in = UC.getInputStream();
        BufferedInputStream buf = new BufferedInputStream(in);
        byte[] bt = new byte[1024];
        String html = "";
        int num;
        while((num = buf.read(bt))!=-1) {
            html += new String(bt,0,num,"utf-8");
        }
        System.out.println(html);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值