Android:HttpWatch+jsoup抓包

最近对抓包挺感兴趣的,所以就花了一点时间去研究。最后总结一下这套方法吧。


HttpWatch

这个软件相当于IE的一个插件(FireFox也支持)。HttpWatch是强大的网页数据分析工具,集成在Internet Explorer工具栏,包括网页摘要、Cookies管理、缓存管理、消息头发送/接受、字符查询、POST 数据和目录管理功能、报告输出等功能。总之HttpWatch 是一款能够收集并显示深层信息的软件。

关于HttpWatch的使用可以参考:HttpWatch工具简介及使用技巧


jsoup

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

总而言之,在这里Jsoup就是用来解析服务器返回的HTML代码。

Download the jsoup

Selector of jsoup


实战一次

抓取目标:校内新闻网站

  • 1.安装HttpWatch、打开IE右击网页或者选择工具栏,打开HttpWatch

  • 2.找到我们想要抓取数据的目标网站、HttpWatch点击Record、进入目标网站、HttpWatch点击Stop。这样我们就抓了第一个数据了。

  • 3.分析数据:从上图可以知道,这是个HttpGet请求,于是我们就写一个HttpGet方法,在OverView一栏可以看到请求的URL是:

    http://notes.stu.edu.cn/login/Login.jsp?logintype=1(只是演示作用,校外网是点不进的)

    public static void sendHttpGetRequest(final String url,
            final HttpCallBack callBack) {
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                HttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url);
                // httpGet.setHeader("Cookie", cookie_grade);
                HttpResponse response = null;
                try {
                    response = client.execute(httpGet);
                    HttpEntity entity = response.getEntity();
                    String string = EntityUtils.toString(entity, "utf-8");
                    if (callBack != null)
                        callBack.onFinish(string);
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }).start();

    }
  • 4.没什么意外的话,我们的回调方法会得到一段服务器返回的html代码。接下来我们就用jsoup去解析这段html代码,我们可以在HttpWatch里面的Content看一下返回的html。

    我们想要的信息是这样一段html代码段

<TR class=datalight>
                           <TD width="50%"><a target =‘_blank‘  href="/page/maint/template/news/newstemplateprotal.jsp?templatetype=1&templateid=3&docid=2382"><img class="vt" src="/csweb/images/38.jpg">&nbsp;&nbsp;36小时内满足你五个欲望― &lt;创意黑客松活动 数据人生篇&gt; 20150327-29</a></TD>
                           <TD width="25%" align="center">网络与信息中心</TD>
                            <TD width="25%" align="center">2015-04-10</TD>
                  </TR>

                  <TR class=datalight>
                           <TD width="50%"><a target =‘_blank‘  href="/page/maint/template/news/newstemplateprotal.jsp?templatetype=1&templateid=3&docid=2381"><img class="vt" src="/csweb/images/38.jpg">&nbsp;&nbsp;关于举办学生社区X计划之汕头传统手工艺探寻活动的通知</a></TD>
                           <TD width="25%" align="center">学生处</TD>
                            <TD width="25%" align="center">2015-04-10</TD>
                  </TR>

所以就根据Selector of jsoup写一个解析的方法

    private Map<String, String> parseNoteHtml(String html) {

        Map<String, String> map = new LinkedHashMap<String, String>();

        Document doc = Jsoup.parse(html);
        Elements elements = doc.select("table[class=ListStyle]");
        Elements elements2 = elements.select("TR[class=datalight]");

        for (Element element : elements2) {
            Elements element_href = element.select("a");
            for (Element element_ : element_href) {
                map.put(element.text(), element_.attr("href"));
            }
        }
        return map;
    }

可以看到我们还把每条信息携带的文件名链接也解析出来

for (Element element_ : element_href) {

map.put(element.text(), element_.attr("href"));

}

  • 5.我们点击校内新闻网的具体新闻,

    对应上图和上上图可以发现具体新闻的URL就是一个主机名+我们解析出来的文件名链接。我们再对这个URL进行抓包操作即可得到新闻内容啦。


结果

  • 新闻条目

  • 具体新闻



最后说明:上述的抓包过程都是HttpGet请求的,对于HttpPost请求的也大同小异,要分析的数据要多一点。

时间: 2024-10-18 06:48:36

Android:HttpWatch+jsoup抓包的相关文章

fiddler Android下https抓包全攻略

fiddler Android下https抓包全攻略 fiddler的http.https的抓包功能非常强大,可非常便捷得对包进行断点跟踪和回放,但是普通的配置对于像招商银行.支付宝.陌陌这样的APP是抓不到包的,需要一些特殊的配置,本文把fiddler Android下https抓包的详细配置都罗列出来,供大家参考. 一.普通https抓包设置 先对Fiddler进行设置: 勾选“CaptureHTTPS CONNECTs”,接着勾选“Decrypt HTTPS traffic”.同时,由于我

HttpWatch网络抓包工具的使用

HttpWatch网络抓包工具是专为IE浏览器集成的一款网络拽包工具. 是一款强大的网页数据分析软件,是最好用的抓包工具,httpwatch可以抓到上传视屏图片的包,一般的抓包软件是抓不到的.打开IE浏览器,选择工具“再选择“HttpWatch Professional”即可.建议用专业版进行网络数据抓取. 网络爬虫是捜索引擎抓取系统的重要组成部分.爬虫技术可以应用在很多方面,当然是好的方面.用HttpWatch结合网络爬虫技术就可以很轻松的实现网络数据的抓取. 然后实现一些应用. (1)下载H

Android平台上抓包

经常会有一些测试需求比如:测试手机上某个app的网络通信是否已经加密,或者测试某个app是否偷偷链接某些网站. 根据抓包的对象,主要有两种途径: 1. 在路由器端抓包:使用一台已经连入路由器的PC来抓取路由器上所有的数据传输信息. 2. 在终端抓包:在终端(手机,平板等)上抓取次终端设备的网络传输信息. 注意:可以很容易通过网络下载到很多可以用来抓包的apk,但是前提是android手机或者终端要root过,笔者试过其中的一.二款,感觉不够理想. 其实网上的这些工具也都是使用tcpdump这款命

Android通过tcpdump抓包

1. 手机要有root权限 2. 下载tcpdump   http://www.strazzere.com/android/tcpdump 3.tcpdumptcpdump 4. adb shell chmod 6755 /data/local/tcpdump 5, adb shell,   su获得root权限 6, cd /data/local 7, ./tcpdump -i any -p -s 0 -w /sdcard/capture.pcap 命令参数: # "-i any":

Fiddler学习之——对Android应用进行抓包

Fiddler做为实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带的抓包工具要好用的多,它还可以支持请求重放等一些高级功能. 对Android应用进行抓包分为两个部分,对fiddler工具的设置和Android手机代理的设置. 1.对fiddler工具的设置 安装并启动Fiddler,打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options

Fiddler2如何对Android应用进行抓包

Fiddler2抓包工具的下载和使用 2018-04-22 18:06:37     0     0     0 Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带的抓包工具要好用的多.不仅如此,它还可以支持请求重放等一些高级功能.显然它是可以支持对手机应用进行http抓包的.本文就来介绍下如何用fiddler对手机应用来抓包. 如何用Fiddler对A

如何用Fiddler对Android应用进行抓包

Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带的抓包工具要好用的多.不仅如此,它还可以支持请求重放等一些高级功能.显然它是可以支持对手机应用进行http抓包的.charles==! 启动Fiddler,打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options”对话框. 在Fiddler Options”对话

Android通过tcpdump抓包(wifi, 2g, 3g都可以)

http://blog.csdn.net/deng529828/article/details/20646197 1. 手机要有root权限 2. 下载tcpdump   http://www.strazzere.com/android/tcpdump 3. adb push c:\wherever_you_put\tcpdump /data/local/tcpdump 如果这一步真机无法push,可以用adb push c:\where_you_put\tcpdump /sdcard,即先将文

Android手机Fildder抓包_监控应用请求

Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思). Fiddler 要比其他的网络调试器要更加简单,因为它仅仅暴露http通讯还有提供一个用户友好的格式. 对于Android开发的同事最头疼的事情莫过于真机抓包,然后Fiddler就可以帮助你解决这个难题,下面是我在使用过程中使