jsou——模拟登录和签到

楔子

一直好奇,对于需要登录的网站,只有登录才能进行操作。代码怎么模拟登录并操作 .花费了一上午的时间。最后发现一个代码变量写错了,导致花费了更多的时间。不过,这个错误,让我更多的了解了一些别的内容。这个过程中,存在一个问题:就是网站登录后会重定向,导致浏览器自带的调试工具无法获取登录的请求信息以及传递的参数,这个问题,使用 fiddler4可以解决

1:模拟登录

1.1 谷歌浏览器查看cookies

使用谷歌浏览器查看cookie chrome://settings/siteData
jsou——模拟登录和签到_第1张图片
jsou——模拟登录和签到_第2张图片
使用fiddler 登录时获取请求头以及提交信息。
jsou——模拟登录和签到_第3张图片

    @Test
    public void testName() throws Exception {

        String loginUrl = ""*****************");";
        Map headMap = new HashMap();
        headMap.put("Host", ""*****************");");

        headMap.put("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0");
        headMap.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        headMap.put("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
        headMap.put("Accept-Encoding", "gzip, deflate");
        headMap.put("Referer", "*****************");
        headMap.put("Content-Type", "application/x-www-form-urlencoded");
        headMap.put("Content-Length", "83");
        headMap.put("Connection", "keep-alive");
        headMap.put("Upgrade-Insecure-Requests", "1");

        Map dataMap = new HashMap();

        dataMap.put("username", "zbdx1314");
        dataMap.put("password", "qwe12345");

        Response post = Jsoup.connect(loginUrl).headers(headMap).data(dataMap).followRedirects(true).method(Method.POST).execute();
        System.out.println(post.body());
        /* 这些cookie在 签到以及其他时候使用*/
        Map cookies2 = post.cookies();

    }

2 签到

不再重复,和上面类似。需要使用的上面的登录后的cookie。

后记

没有广泛测试,单独针对我的需要的采集操作的。

你可能感兴趣的:(java,jsoup)