日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java抓取网页数据(原网页+Javascript返回数据)

發布時間:2025/5/22 java 121 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java抓取网页数据(原网页+Javascript返回数据) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載請注明出處!

原文鏈接:http://blog.csdn.net/zgyulongfei/article/details/7909006


有時候因為種種原因,我們須要採集某個站點的數據,但因為不同站點對數據的顯示方式略有不同!

本文就用Java給大家演示怎樣抓取站點的數據:(1)抓取原網頁數據;(2)抓取網頁Javascript返回的數據。

一、抓取原網頁。

這個樣例我們準備從http://ip.chinaz.com上抓取ip查詢的結果:

第一步:打開這個網頁,然后輸入IP:111.142.55.73,點擊查詢button,就能夠看到網頁顯示的結果:




第二步:查看網頁源代碼,我們看到源代碼中有這么一段:



從這里能夠看出,查詢的結果,是又一次請求一個網頁之后顯示的。

再看看查詢之后的網頁地址:

也就是說,我們僅僅要訪問形如這種網址,就能夠得到ip查詢的結果,接下來看代碼:

public void captureHtml(String ip) throws Exception {String strURL = "http://ip.chinaz.com/?IP=" + ip;URL url = new URL(strURL);HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();InputStreamReader input = new InputStreamReader(httpConn.getInputStream(), "utf-8");BufferedReader bufReader = new BufferedReader(input);String line = "";StringBuilder contentBuf = new StringBuilder();while ((line = bufReader.readLine()) != null) {contentBuf.append(line);}String buf = contentBuf.toString();int beginIx = buf.indexOf("查詢結果[");int endIx = buf.indexOf("上面四項依次顯示的是");String result = buf.substring(beginIx, endIx);System.out.println("captureHtml()的結果:\n" + result); }使用HttpURLConnection連接站點,用bufReader保存網頁返回的數據,然后通過自己定義的一個解析方式將結果顯示出來。

這里我僅僅是隨便的解析了一下,要解析的很準確的話自己需再處理。

解析結果例如以下:

captureHtml()的結果:
查詢結果[1]: 111.142.55.73 ==>> 1871591241 ==>> 福建省漳州市 移動</strong><br /> ?


二、抓取網頁JavaScript返回的結果。

有時候站點為了保護自己的數據,并沒有把數據直接放在網頁源代碼中返回,而是採用異步的方式,用JS返回數據,這樣能夠避免搜索引擎等工具對站點數據的抓取。

首先看一下這個網頁:



用第一種方式查看該網頁的源代碼,卻沒有發現該運單的跟蹤信息,由于它是通過JS的方式獲取結果的。

但有時候我們非常須要獲取到JS的數據,這個時候要怎么辦呢?

這個時候我們須要用到一個工具:HTTP Analyzer,這個工具能夠截獲Http的交互內容,我們通過這個工具來達到我們的目的。

首先點擊Startbutton之后,它就開始監聽網頁的交互行為了。

我們打開網頁:http://www.kiees.cn/sf.php ,能夠看到HTTP Analyzer列出了全部該網頁的請求數據以及結果:



為了更方便的查看JS的結果,我們先清空這些數據,然后再網頁中輸入快遞單號:107818590577,點擊查詢button,然后查看HTTP Analyzer的結果:


這個就是點擊查詢button之后,HTTP Analyzer的結果,我們繼續查看:




從上面兩幅圖中能夠看出,HTTP Analyzer能夠截獲JS返回的數據,并在Response Content中顯示,同一時候能夠看到JS請求的網頁地址。

既然如此,我們僅僅要分析HTTP Analyzer的結果,然后模擬JS的行為就可獲取到數據,即我們僅僅要訪問JS請求的網頁地址來獲取數據,當然前提是這些數據是沒有經過加密的,我們記下JS請求的URL:http://www.kiees.cn/sf.php?wen=107818590577&channel=&rnd=0

然后讓程序去請求這個網頁的結果就可以!

以下是代碼:

public void captureJavascript(String postid) throws Exception {String strURL = "http://www.kiees.cn/sf.php?wen=" + postid+ "&channel=&rnd=0";URL url = new URL(strURL);HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();InputStreamReader input = new InputStreamReader(httpConn.getInputStream(), "utf-8");BufferedReader bufReader = new BufferedReader(input);String line = "";StringBuilder contentBuf = new StringBuilder();while ((line = bufReader.readLine()) != null) {contentBuf.append(line);}System.out.println("captureJavascript()的結果:\n" + contentBuf.toString()); }看到了吧,抓取JS的方式和前面抓取原網頁的代碼一模一樣,我們僅僅只是做了一個分析JS的過程。

以下是程序運行的結果:

captureJavascript()的結果:

<div class="results"><div id="ali-itu-wl-result" class="ali-itu-wl-result"><h2 class="logisTitle">運單<span class="mail-no">【107818590577】</span>的跟蹤信息</h2><div class="trace_result"><ul><li><span class="time">2012-07-16 15:46:00</span><span class="info">已收件 </span></li><li><span class="time">2012-07-16 16:03:00</span><span class="info">快件在 廣州\t,準備送往下一站廣州集散中心 </span></li><li><span class="time">2012-07-16 19:33:00</span><span class="info">快件在 廣州集散中心,準備送往下一站佛山集散中心 </span></li><li><span class="time">2012-07-17 01:56:00</span><span class="info">快件在 佛山集散中心\t,準備送往下一站佛山 </span></li><li><span class="time">2012-07-17 09:41:00</span><span class="info">正在派件.. </span></li><li><span class="time">2012-07-17 11:28:00</span><span class="info">派件已簽收 </span></li><li><span class="time">2012-07-17 11:28:00</span><span class="info">簽收人是:已簽收 </span></li></ul><div></div></div></div> ?</div>


這些數據就是JS返回的結果了,我們的目的達到了!

希望本文可以對須要的朋友有一點幫助,須要程序源代碼的,請點擊這里下載!


總結

以上是生活随笔為你收集整理的Java抓取网页数据(原网页+Javascript返回数据)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99re视频在线 | 幸福,触手可及 | 精品福利影院 | 精品欧美乱码久久久久久1区2区 | 伊人五月综合 | 色资源在线 | 久久久久久久久久久电影 | 视频在线观看一区 | 福利在线视频观看 | 性欧美精品中出 | 天堂在线中文8 | 午夜性刺激免费视频 | 少妇高潮伦 | 国产又粗又猛又爽69xx | 亚洲图片中文字幕 | 男人干女人视频 | 日韩视频一区二区 | 韩国三级国产 | 无码成人一区二区 | 欧洲亚洲成人 | 美女久久久久久 | 亚洲国产日韩一区二区 | 国产成人三级在线观看 | 欧美日韩不卡视频 | 欧洲美女粗暴牲交免费观看 | 国产靠逼视频 | 无码日韩精品一区二区 | 乱熟女高潮一区二区在线 | 一区一区三区产品乱码 | 欧美日韩在线免费观看 | 久久99久久99精品 | 国产精品丝袜一区 | 国产精品jizz在线观看老狼 | 少妇性l交大片免潘金莲 | 在线观看深夜视频 | 久久这里只有精品首页 | 亚洲欧美日韩国产一区 | 成人午夜视频一区二区播放 | 国产中文一区二区三区 | 国语对白 | zzjj国产精品一区二区 | 欧美激情第二页 | h网站在线| 欧美成人第一页 | 日xxxx| 色播日韩| 国产 日韩 欧美 成人 | 中文字幕在线色 | 色一情一伦一子一伦一区 | 少妇h视频| 成熟了的熟妇毛茸茸 | 日韩综合在线观看 | 亚洲人成网址 | 姑娘第5集在线观看免费 | 在线播放你懂的 | 色偷偷av男人的天堂 | 成人免费毛片入口 | 国产69视频在线观看 | 欧美 日韩 国产 一区 | 亚洲一区二区三区色 | 中文字幕日韩欧美 | 麻豆一区在线 | 国产一区二区黄色 | 午夜av一区二区 | 香蕉视频日本 | 伊人影院综合在线 | 一区二区三区av | 免费中文视频 | 日韩在线91 | 一区二区三区视频在线免费观看 | 日本aⅴ在线 | 久久裸体视频 | 午夜视频免费看 | 国产极品美女高潮无套嗷嗷叫酒店 | 亚洲一区二区日韩欧美 | 一区二区三区四区视频 | 老鸭窝久久 | 少妇人妻精品一区二区三区 | 亚洲av网址在线 | 国产乱码精品一区二区三区不卡 | 国产黄色片免费在线观看 | 亚洲91色| 久久99日韩 | 性户外野战hd | 中文字幕色站 | 人妻视频一区二区三区 | 日本免费一区二区三区 | 99中文字幕在线观看 | 亚洲av午夜精品一区二区三区 | 香蕉视频在线网站 | 日本五十路女优 | 国产9区| 老熟妇仑乱一区二区视频 | 日韩欧美精品中文字幕 | 九色porny自拍视频在线播放 | 91污在线观看 | 日韩av首页 | 黄色av资源 | 亚洲精品尤物 |