jsoup学习整理(模拟登陆,乱码问题)

学习至jsoup中文网http://www.open-open.com/jsoup/


获取cookies(针对没有验证码或者有漏洞绕过验证的模拟登陆)【例如正方教务】

Response res=null;

        res=Jsoup.connect(urlCookies)//要请求的链接

       .followRedirects(false)//不处理自动重定向

.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0")//伪装浏览器
.data("TextBox1",username)//设置请求时需要的数据
.data("TextBox2",password)
.data("Button1","")
.data("RadioButtonList1","学生")
.data("__VIEWSTATE","dDwxMTE4MjQwNDc1Ozs+MzFt0h81g6NGHTq1L9P2NfWUGLA=")
.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")//设置请求头
.header("Accept-Language","zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3")
.header("Accept-Encoding", "gzip, deflate")
.header("Connection","keep-alive")
.header("Upgrade-Insecure-Requests", "1")

.execute();

        cookies=res.cookies();

-------------------------------------------------------------

得到cookies后这样就可以去得到页面的document对象了

elemts=Jsoup.connect(urlSource+username)
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0")
//.header("Referer", "http://172.16.1.8/default2.aspx")
.cookies(cookies)

.get();

----------------------------------------------------------------

这里有个东西说下有些网站有设置Referer,这个时候你就要填写发出请求的页面

且jsoup的Jsoup.connect是无法设置编码 的所以可能会乱码

一般情况下得到document取得elemt后new String(gt.text().getBytes("ISO8859-1"),"GBK")

转码就ok了但是有一次遇见一些偏僻的中文就不行(可能我的版本低了没设置编码功能)

最后找到了处理方法:

URL url = new URL(ppx.toString());//ppx是要访问的链接
HttpURLConnection connection = (HttpURLConnection)url.openConnection();//这里只是创建一个链接实例并没有真实网络链接
connection.setRequestMethod("GET");
//connection.addRequestProperty("ddlXQ", "1");
connection.addRequestProperty("Connection", "keep-alive");
connection.addRequestProperty("Upgrade-Insecure-Requests", "1");
connection.addRequestProperty("Host", "61.142.33.204");
connection.addRequestProperty("Referer", "http://61.142.33.204/xs_main.aspx?xh="+username);
connection.addRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");
connection.addRequestProperty("Accept-Encoding", "gzip, deflate");
connection.addRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8");
connection.addRequestProperty("Cookie", "ASP.NET_SessionId="+cookies.get("ASP.NET_SessionId"));

elemts = Jsoup.parse(connection.getInputStream(), "GBK", ppx.toString());//这个方法才去访问链接并可以设置编码

这样就算是生僻字也没问题了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值