httpclient+Jsoup总结
Jsoup.parse解析HTML字符串,如Jsoup.parse("<html><head><title>Firstparse</title></head>") Jsoup.connect解析url网站地址,如Jsoup.connect(http://www.baidu.com).get()
可以用httpclient获取网页,再用Jsoup.parse解析页面
String text = getMethod.getResponseBodyAsString();
Document doc = Jsoup.parse(text);
法一:httpclient+Jsoup
String dataUrl = "http://hi.mop.com/?";
HttpClient httpClient = new HttpClient();
String cookies = "_ml=371386500452711504675;";
GetMethod getMethod = new GetMethod(dataUrl);
// 每次访问需授权的网址时需带上前面的 cookie 作为通行证
getMethod.setRequestHeader("cookie", cookies);
getMethod.setRequestHeader("Referer", "http://passport.mop.com/");
getMethod.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
int statusCodes = httpClient.executeMethod(getMethod);
System.out.println(statusCodes);
System.out.println("模拟登录成功");
String text = getMethod.getResponseBodyAsString();
法二:Jsoup Connction + Jsoup解析
Connection conn = Jsoup.connect(String url);
conn.data("txtBill", key);// 设置关键字查询字段
Document doc = null;
doc = conn.timeout(100000).post();//设置请求类型为post型或者get型,超时100000毫秒
results = doc.select(TagName);// 处理返回数据
for (Element result : results){}
package Step1; import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader; import javax.lang.model.element.Element; import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements; /**
*
* @ClassName: HttpLogin
* @Description: java通过httpclient结合Jsoup
* @author zeze
* @date 2015年11月10日 下午5:07:33
*
*/ public class HttpLogin { public static void main(String[] args) {
//Url
String dataUrl = "http://hi.mop.com/?";
HttpClient httpClient = new HttpClient(); try {
// 获得登陆后的 Cookie
String cookies = "_ml=371386500452711504675;";
GetMethod getMethod = new GetMethod(dataUrl);
// 每次访问需授权的网址时需带上前面的 cookie 作为通行证
getMethod.setRequestHeader("cookie", cookies);
getMethod.setRequestHeader("Referer", "http://passport.mop.com/");
getMethod.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
int statusCodes = httpClient.executeMethod(getMethod);
System.out.println("状态码:"+statusCodes); //如果返回的头信息没有指定长度或长度大于1M则抛出异常需把 getResponseBodyAsString()换成 getResponseBodyAsStream()
//String text = getMethod.getResponseBodyAsString();
InputStream inputStream = getMethod.getResponseBodyAsStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuffer stringBuffer = new StringBuffer();
String str= "";
while((str = br.readLine()) != null){
stringBuffer.append(str );
} //Element result=text;
Document doc = Jsoup.parse(stringBuffer.toString());
Elements name=doc.select("[class=tc c068 fs14 yahei mt5 username]");
System.out.println(name.text());
}
catch (Exception e) {
e.printStackTrace();
}
}
}
httpclient+Jsoup总结的更多相关文章
- HttpClient + Jsoup模拟登录教务处并获取课表
1.概述 最近想做一个校园助手类的APP,由于第一次做,所以打算先把每个功能单独实现,防止乱了阵脚.利用教务处登录获取课表和成绩等是一个基本功能,所以以获取课表为例实现了这个功能.完整代码点这里,尝试 ...
- HttpClient+Jsoup 抓取网页信息(网易贵金属为例)
废话不多说直接讲讲今天要做的事. 利用HttpClient和Jsoup技术抓取网页信息.HttpClient是支持HTTP协议的客户端编程工具包,并且它支持HTTP协议. jsoup 是一款基于 Ja ...
- httpclient+jsoup实现小说线上采集阅读
前言 用过老版本UC看小说的同学都知道,当年版权问题比较松懈,我们可以再UC搜索不同来源的小说,并且阅读,那么它是怎么做的呢?下面让我们自己实现一个小说线上采集阅读.(说明:仅用于技术学习.研究) 看 ...
- HttpClient+Jsoup模拟登陆贺州学院教务系统,获取学生个人信息
前言 注:可能学校的教务系统已经做了升级,当前的程序不知道还能不能成功获取信息,加上已经毕业,我的账户已经被注销,试不了,在这里做下思路跟过程的记录. 在我的毕业设计中”基于SSM框架贺州学院校园二手 ...
- HttpClient&Jsoup爬虫的简单应用
详细的介绍已经有很多前辈总结,引用一下该篇文章:https://blog.csdn.net/zhuwukai/article/details/78644484 下面是一个代码的示例: package ...
- HttpClient+jsoup登录+解析 163邮箱
找了几个,只有这个靠谱,用的是httpclient4,另外还需要commons-lang和jsoup包 http://jsoup.org/ http://www.oschina.net/code/sn ...
- httpclient+jsoup实现网页信息抓取
需求分析:抓取:http://tools.2345.com/rili.htm中的万年历(阳历.阴历等等). 1.首先为抓取的内容创建一个类.实现封装. package com.wan.domain; ...
- 【小型系统】简单的刷票系统(突破IP限制进行投票)
一.前言 相信大家平时肯定会收到朋友发来的链接,打开一看,哦,需要投票.投完票后弹出一个页面(恭喜您,您已经投票成功),再次点击的时候发现,啊哈,您的IP(***.***.***.***)已经投过票了 ...
- (转)投票系统,更改ip刷票
前言 相信大家平时肯定会收到朋友发来的链接,打开一看,哦,需要投票.投完票后弹出一个页面(恭喜您,您已经投票成功),再次点击的时候发现,啊哈,您的IP(***.***.***.***)已经投过票了,不 ...
随机推荐
- tamper参数
"tamper/apostrophemask.py","tamper/equaltolike.py","tamper/greatest.py" ...
- Orchard源码分析(4):Orchard.Environment.OrchardStarter类
概述 OrchardStarter类是个静态类,主要作用是配置Autofac容器以及创建IOrchardHost(DefaultOrchardHost)对象,分别对应CreateHost和Create ...
- regsvr32的使用
注册器是: DllRegisterServer 命令就是: regsvr32 不是regsrv32.
- thinkphp-许愿墙-3
用jquery写异步传递的时候, 首先要判断表单中的输入是否为空: 如果有多个输入项, 应该, 分别的, 一步一步的来判断是否为空, 而不是用 and / or来复合判断! 同时如果为空, 应该将它设 ...
- Java学习注意事项
一个Java文件中可以包含多个类. 如果有public类,则文件名必须和public类一样. 例如: class Pie { void f(){ System.out.println("Pi ...
- clang
1.安装 clang 可以从官网下载,如果是CentOS 6 系统,也可以在 /etc/yum.repos.d/ 目录下增加一个 epel.repo 文件,内容如下: [epel] name=Extr ...
- 【转载】Unity 合理安排增量更新(热更新)
原帖地址:由于我看到的那个网站发的这篇帖子很大可能是盗贴的,我就暂时不贴地址了.避免伤害原作者 原版写的有点乱,我个人修改整理了下. --------------------------------- ...
- Ansible简明使用手册
Ansible使用简明手册 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric ...
- 繁华模拟赛day8 科技树
/* 贪心,很明显是越容易升级的越先升级 */ #include<iostream> #include<cstdio> #include<string> #incl ...
- R语言 奇怪的NA
> 1+NA [1] NA > NA==1 [1] NA > c(NA,1:50) [1] NA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...