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是: ?logintype=1(只是演示作用,校外网是点不进的)

(final String url,final HttpCallBack callBack) {new Thread(new Runnable() {() {// TODO Auto-generated method stubHttpClient 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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}).start();}4.没什么意外的话,我们的回调方法会得到一段服务器返回的html代码。接下来我们就用jsoup去解析这段html代码,我们可以在HttpWatch里面的Content看一下返回的html。

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

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

, String> parseNoteHtml(String html) {, LinkedHashMap();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请求的也大同小异,要分析的数据要多一点。

享受每一刻的感觉,欣赏每一处的风景,这就是人生。

Android:HttpWatch+jsoup抓包

相关文章:

你感兴趣的文章:

标签云: