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进行抓包操作即可得到新闻内容啦。

结果

  • 新闻条目

  • 具体新闻
    这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fiddler是一款常用的抓包工具,可以用于在安卓模拟器中进行APP的抓包。使用Fiddler抓包模拟器的步骤如下: 1. 首先,确保你已经安装了Fiddler这个软件,并将其打开。 2. 接下来,重启模拟器,输入设置的密码并按回车键。 3. 打开需要抓包的APP,在模拟器中进行操作。 4. 在电脑上打开Fiddler软件,你就可以在其中看到抓包结果了。Fiddler可以抓取HTTP和HTTPS协议的数据。 通过Fiddler抓包,你可以查看APP与服务器之间的通信,包括请求和响应的数据。你还可以修改接口的参数和返回值,以便进行调试和测试。 需要注意的是,Fiddler是一种常用的抓包工具,还有其他一些类似的工具,如Wireshark、HttpWatch、Firebug等。它们可以抓取不同类型的协议,例如Fiddler主要抓取HTTP和HTTPS协议,而Wireshark则可以抓取其他类型的协议。此外,常用的F12调试工具仅能查看接口的参数和响应值,无法修改。 总结来说,Fiddler是一款适用于安卓模拟器的抓包工具,可以帮助你分析和调试APP与服务器之间的通信。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Fiddler对安卓模拟器里的APP抓包(步骤详细,各种抓包工具总结)](https://blog.csdn.net/chuyouyinghe/article/details/124751962)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值