jsou——模拟登录和签到

10 篇文章 0 订阅

楔子

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

1:模拟登录

1.1 谷歌浏览器查看cookies

使用谷歌浏览器查看cookie chrome://settings/siteData
chrome://settings/siteData
这里写图片描述
使用fiddler 登录时获取请求头以及提交信息。
这里写图片描述

    @Test
    public void testName() throws Exception {

        String loginUrl = ""*****************");";
        Map<String, String> headMap = new HashMap<String, String>();
        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<String, String> dataMap = new HashMap<String, String>();

        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<String, String> cookies2 = post.cookies();

    }

2 签到

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

后记

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值