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

 1 String dataUrl = "http://hi.mop.com/?";
 2 HttpClient httpClient = new HttpClient();
 3 String cookies = "_ml=371386500452711504675;";
 4 GetMethod getMethod = new GetMethod(dataUrl);
 5 // 每次访问需授权的网址时需带上前面的 cookie 作为通行证
 6 getMethod.setRequestHeader("cookie", cookies);
 7 getMethod.setRequestHeader("Referer", "http://passport.mop.com/");
 8 getMethod.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
 9 int statusCodes = httpClient.executeMethod(getMethod);
10 System.out.println(statusCodes);
11 System.out.println("模拟登录成功");
12 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();
        }
    }
}
时间: 2024-10-10 14:40:10

httpclient+Jsoup总结的相关文章

HttpClient + Jsoup模拟登录教务处并获取课表

1.概述 最近想做一个校园助手类的APP,由于第一次做,所以打算先把每个功能单独实现,防止乱了阵脚.利用教务处登录获取课表和成绩等是一个基本功能,所以以获取课表为例实现了这个功能.完整代码点这里,尝试了好几次的,所以写的比较乱. 2.涉及的关键知识 首先,明确获取课表的流程:其实,获取课表就是让手机模拟浏览器,给服务器传去账号.密码,然后服务器会返回cookies(不懂自行百度),利用cookie就可以穿梭自如了,比如查课表.但是,浏览器登录时,返回的html文件浏览器是会自动解析成网页展现在我

HttpClient+jsoup登录+解析 163邮箱

找了几个,只有这个靠谱,用的是httpclient4,另外还需要commons-lang和jsoup包 http://jsoup.org/ http://www.oschina.net/code/snippet_128625_12592?p=2 ------------------------------------------------------------ 如题: 支用用jsoup解析页面非常方便,当时jsoup做登录就比较麻烦,反正我不知道怎么做. HttpClient做登录比较方便因

利用 Jsoup 和 多线程下载旺旺英语MP3

import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class Snippet { public static void main(String[] args) throws IOException{ String baseUrl =

Jsoup登录解析网页信息

今天解析网页的时候,遇到必须登录后才能够访问的问题,在网上搜索了一些资料,反正有人做出来了,不过是使用HttpClient+Jsoup来实现的,我不清楚他们使用什么版本的Jsoup,地址:  HttpClient模拟登陆人人网,并且爬取日志内容(一),http://bbs.csdn.net/topics/390269063,查看现在的Jsoup API,可以直接模拟登陆,获取服务器返回的信息. 我这里是使用水木社区做Demo,其中下面的id和passwd分别是提交form表单中用户名和密码的

使用HttpClient+Json解析器爬取数据并存入数据库

一.题目要求 说明:这里我只展示爬取数据的代码,将可视化结果与统计数据结合,实时显示当前最新数据只需将这篇博客代码和我那篇使用Echarts可视化数据库数据结合即可 二.思路 同学思路:我的大部分同学思路是使用HttpClient+Jsoup获取并解析目标页面的数据,然后调用Dao层中的方法将数据筛选并存入数据库中 我的思路:我直接使用了一个网上的一个最新疫情数据Json的目标网页,然后使用HttpClient获取该Json格式数据,然后使用Json解析器将 数据分离,然后调用Dao层中的方法将

htmlunit

htmlunit介绍 htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容.项目可以模拟浏览器运行,被誉为java浏览器的开源实现.是一个没有界面的浏览器. Httpclient+jsoup无法解析js加载出来的页面数据,比如百度云用户页面,淘宝页面: htmlunit内嵌js浏览器,模拟Js运行,把结果执行出来,不过相对Httpclient+jsoup速度较慢. 导入依赖 通过maven远程仓库导入htmlunit依赖包 <depen

网络爬虫的相关综述

前言:对网络爬虫很感兴趣 —————————————————————————————————————————————— 一.网络爬虫的工作原理 1.1等同于浏览器访问网页的工作原理.(详细情况见本文末尾博文链接) (1)是一种真人的行为驱动 (2)通过浏览器来自动执行人为的动作,将动作自动程序化. 1.2网络爬虫就是将浏览器访问网页的过程,再次抽象成了程序. 二.网络爬虫的分类 2.1通过链接的访问层次先后来分:宽度优先和广度优先 宽度优先:在下载网页链接时,是一层一层的通过链接来爬取: 广度优

网络爬虫研发重点介绍

一.网络爬虫的一般作法 1.1 基于Socket通信编写爬虫1.2 基于HttpURLConnection类编写爬虫1.3 基于apache的HttpClient包编写爬虫1.4 基于phantomjs之类的无头(无界面)浏览器1.5 基于Selenium之类的有头(有界面)浏览器 二.系统设计 2.1 模块划分:任务管理的UI交互层.任务调度层.网络爬取层.数据解析层.数据持久化层 2.2 项目划分数据采集/下载项目(download)数据解析项目(parser)数据持久化(persisten

模拟登陆CSDN——就是这么简单

工具介绍 本篇文章主要是讲解如何模拟登陆CSDN,使用的工具是HttpClient+Jsoup 其中HttpClient主要是负责发送请求,而Jsoup主要是解析HTML 你可能对HttpClient的API不太了解,不过没关系,往下看就好了~ Jsoup的语法类似jQuery的选择器,相信有一定web基础的人都可以很快的掌握 其中select(String selector)就是最强大的选择器,另外还提供一系列的细化的方法,比如: getElementById(String id), getE