java 基于Jsoup 对领英完成模拟登陆(Java爬虫)

 public String login() {
        // TODO Auto-generated method stub
        String pwd = "XXXXXXXXXXXXXXX";//密码
        String account = "XXXXXXXXXXXXXXXXXXXX";//账号
        String nameId="";
        String csrf_token="";
        Map<String, String> cookie = new HashMap<String,String>();
        Map<String, String> cookies = new HashMap<String,String>();
        try {
            String url="https://www.linkedin.com/login?trk=guest_homepage-basic_nav-header-signin";
            Connection connect = Jsoup.connect(url);
            connect.header("authority","www.linkedin.com");
            connect.header("cache-control","max-age=0,no-cache");
            connect.header("user-agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36");
            connect.header("accept","text/html,appli cation/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
            connect.header("referer","https://www.baidu.com/s?ie=·-8&wd=%E9%A2%86%E8%8B%B1");
            connect.header("accept-encoding","gzip, deflate, br");
            connect.header("accept-language","en-US;q=0.8,en;q=0.7");


            Connection.Response response = connect.ignoreContentType(true)
                    .execute();
            Document parse = response.parse();
            String loginCsrfParam = parse.select("input[name=loginCsrfParam]").get(0).attr("value");
            cookie = response.cookies();
            System.out.println(cookie);
            for (String s : cookie.keySet()) {
                if(s.equalsIgnoreCase("JSESSIONID")){
                    csrf_token=cookie.get(s);
                    System.out.println(csrf_token);
                    break;
                }
            }


            Map<String, String> datas = new HashMap<String,String>();
            datas.put("session_key", account);
            datas.put("session_password",pwd );
            datas.put("isJsEnabled", "false");
            datas.put("loginCsrfParam",loginCsrfParam);
            datas.put("fp_data", "default");
            datas.put("undefined", "");
            url="https://www.linkedin.com/uas/login-submit?loginSubmitSource=GUEST_HOME";
            Connection connection2 = Jsoup.connect(url);
            connection2.header("authority","www.linkedin.com");
            connection2.header("cache-control","max-age=0,no-cache");
            connection2.header("origin","https://www.linkedin.com");
            connection2.header("upgrade-insecure-requests","1");
            connection2.header("content-type","application/x-www-form-urlencoded");
            connection2.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36");
            connection2.header("accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
            connection2.header("referer","https://www.linkedin.com/");
            connection2.header("accept-encoding","gzip, deflate, br");
            connection2.header("accept-language","en-US;q=0.8,en;q=0.7");
            connection2.cookies(cookie);
            Connection.Response execute = connection2
                    .data(datas)
                    .cookies(cookie)
                    .method(Method.POST)
                    .execute();
            URL referer = execute.url();
            Map<String, String> executeCookie = execute.cookies();
            Document parse1 = execute.parse();
            String result=parse1.toString();
            if (result.contains("Sign-In Verification") || result.contains("verification code")) {
                cookie.putAll(executeCookie);
                cookies =cookie;
            }else{
                cookies =executeCookie;
            }
            nameId = RegexUtil.getValue("\"publicIdentifier\":\"(.*?)\"", result, 1).trim();
            System.out.println("登陆成功");
            return "success";
        } catch (Exception e) {
            System.out.println("登陆异常");
            return "error";
        }

    }

猜你喜欢

转载自blog.csdn.net/weixin_39041673/article/details/93871107