Jsoup Cookie登录处理

应用背景

在抓取某些网站的数据时,需要登陆才能得到含有数据的HTML文档,此时直接获取Document会什么都得不到。解决办法就是,先自己打开浏览器,登录目标网站,然后获取浏览器的cookie字符,把它复制粘贴到Jsoup参数中即可解决此问题,拿到浏览器的cookie进行获取数据,目标网站就会把Jsoup当作刚刚登陆网站的浏览器对待。

获取浏览器的cookie

打开浏览器(自测谷歌浏览器和火狐浏览器都可以),按下F12打开开发者模式,点击Console打开控制台,键入命令:javascript:alert(document.cookie),回车即可看到浏览器在当前网站的缓存

使用下面函数即可将获取到的cookie转化为键值对形式,以用在jsoup中

	public HashMap<String, String> convertCookie(String cookie) {
		HashMap<String, String> cookiesMap = new HashMap<String, String>();
		String[] items = cookie.trim().split(";");
		for (String item:items) cookiesMap.put(item.split("=")[0], item.split("=")[1]);
		return cookiesMap;
	}

在Jsoup中,以如下方式即可利用Cookie

Document document = Jsoup.connect("https://www.google.com").cookies(cookiesMap).get();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦星辰.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值