用類java.net.InetAddress中
byte[] getAddress() 返回此 InetAddress 對象的原始 IP 地址。
static InetAddress[] getAllByName(String host) 在給定主機名的情況下,根據系統上配置的名稱服務返回其 IP 地址所組成的數組。
static InetAddress getByAddress(byte[] addr) 在給定原始 IP 地址的情況下,返回 InetAddress 對象。
static InetAddress getByAddress(String host, byte[] addr) 根據提供的主機名和 IP 地址創建 InetAddress。
static InetAddress getByName(String host) 在給定主機名的情況下確定主機的 IP 地址。
String getCanonicalHostName() 獲取此 IP 地址的完全限定域名。
String getHostAddress() 返回 IP 地址字元串(以文本表現形式)。
String getHostName() 獲取此 IP 地址的主機名。
static InetAddress getLocalHost() 返回本地主機。
Enumeration netInterfaces = null;
try {
netInterfaces = NetworkInterface.getNetworkInterfaces();
while (netInterfaces.hasMoreElements()) {
NetworkInterface ni = netInterfaces.nextElement();
System.out.println("DisplayName:" + ni.getDisplayName());
System.out.println("Name:" + ni.getName());
Enumeration ips = ni.getInetAddresses();
while (ips.hasMoreElements()) {
System.out.println("IP:"
+ ips.nextElement().getHostAddress());
}
}
} catch (Exception e) {
e.printStackTrace();
}
2. 如何用java實現新聞採集
Java網頁數據採集器例子如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Group 類 用於匹配和抓取 html頁面的數據
*/
public class Group {
public static void main(String[] args) {
// Pattern 用於編譯正則 這里用到了3個正則 分別用括弧()包住
// 第1個正則用於匹配URL 當然這里的正則不一定準確 這個匹配URL的正則就是錯誤的 只是在這里剛好能匹配出來
// 第2個正則是用於匹配標題 SoFlash的
// 第3個正則用於匹配日期
/* 這里只用了一條語句便把url,標題和日期全部給匹配出來了 */
Pattern p = Pattern
.compile("='(\\w.+)'>(\\w.+[a-zA-Z])-(\\d{1,2}\\.\\d{1,2}\\.\\d{4})");
String s = "<a href='http://www.cnblogs.com/longwu'>SoFlash-12.22.2011</a>";
Matcher m = p.matcher(s);
while (m.find()) {
// 通過調用group()方法里的索引 將url,標題和日期全部給列印出來
System.out.println("列印出url鏈接:" + m.group(1));
System.out.println("列印出標題:" + m.group(2));
System.out.println("列印出日期:" + m.group(3));
System.out.println();
}
System.out.println("group方法捕獲的數據個數:" + m.groupCount() + "個");
}
}
下輸出結果:
列印出url鏈接:http://www.cnblogs.com/longwu
列印出標題:SoFlash
列印出日期:12.22.2011
group方法捕獲的數據個數:3個
3. 請教下如何使用java做實時網頁數據採集
這個比較難,比較麻煩!
我們公司的項目是java開發的,但是數據採集這塊是單獨外包給一家叫「有訊軟體」的採集服務商來做的。
4. 怎樣用Java實現網站數據採集.txt
可以使用HttpClient讀取網頁的內容
整個過程分為六步
創建 HttpClient 的實例
2. 創建某種連接方法的實例,在這里是 GetMethod。在 GetMethod 的構造函數中傳入待連接的地址
3. 調用第一步中創建好的實例的 execute 方法來執行第二步中創建好的 method 實例
4. 讀 response
5. 釋放連接。無論執行方法是否成功,都必須釋放連接
6. 對得到後的內容進行處理
實現如下:
import java.io.IOException;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class HttpClientTest...{
public static void main(String[] args) {
//構造HttpClient的實例
HttpClient httpClient = new HttpClient();
//創建GET方法的實例
GetMethod getMethod = new GetMethod("http://www.crazyjava.org");
//使用系統提供的默認的恢復策略
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
//執行getMethod
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: "
+ getMethod.getStatusLine());
}
//讀取內容
byte[] responseBody = getMethod.getResponseBoy();
//處理內容
System.out.println(new String(responseBody));
} catch (HttpException e) {
//發生異常,可能是協議不對或者返回的內容有問題
System.out.println("Please check your provided http address!");
e.printStackTrace();
} catch (IOException e) {
//發生網路異常
e.printStackTrace();
} finally {
//釋放連接
getMethod.releaseConnection();
}
}
}
這樣得到的是頁面的源代碼,再進行處理
5. 如何用Java實現數據採集
Java網頁數據採集器例子如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Group 類 用於匹配和抓取 html頁面的數據
*/
public class Group {
public static void main(String[] args) {
// Pattern 用於編譯正則 這里用到了3個正則 分別用括弧()包住
// 第1個正則用於匹配URL 當然這里的正則不一定準確 這個匹配URL的正則就是錯誤的 只是在這里剛好能匹配出來
// 第2個正則是用於匹配標題 SoFlash的
// 第3個正則用於匹配日期
/* 這里只用了一條語句便把url,標題和日期全部給匹配出來了 */
Pattern p = Pattern
.compile("='(\\w.+)'>(\\w.+[a-zA-Z])-(\\d{1,2}\\.\\d{1,2}\\.\\d{4})");
String s = "<a href='http://www.cnblogs.com/longwu'>SoFlash-12.22.2011</a>";
Matcher m = p.matcher(s);
while (m.find()) {
// 通過調用group()方法里的索引 將url,標題和日期全部給列印出來
System.out.println("列印出url鏈接:" + m.group(1));
System.out.println("列印出標題:" + m.group(2));
System.out.println("列印出日期:" + m.group(3));
System.out.println();
}
System.out.println("group方法捕獲的數據個數:" + m.groupCount() + "個");
}
}
下輸出結果:
列印出url鏈接:http://www.cnblogs.com/longwu
列印出標題:SoFlash
列印出日期:12.22.2011
group方法捕獲的數據個數:3個
6. java 高並發大量採集數據該如何去做
資料庫連接已設置為了1000,說明你的軟體設計方法不對,
類似的情況只用1個資料庫連接或幾個就夠了,
參考中間件設計或MIDAS設計,類似資料庫做個Pool的處理方法,
而不是讓軟體直連資料庫
7. 數據採集器與爬蟲相比有哪些優勢
由於現在數據比較多,僅靠人工去採集,這根本就沒有效率,因此面對海量的網頁數據,大家通過是使用各種的工具去採集。目前批量採集數據的方法有:
1.採集器
採集器是一種軟體,通過下載安裝之後才可以進行使用,能夠批量的採集一定數量的網頁數據。具有採集、排版、存儲等的功能。
2.爬蟲代碼
通過編程語言Python、JAVA等來編寫網路爬蟲,實現數據的採集,需要經過獲取網頁、分析網頁、提取網頁數據、輸入數據並進行存儲。
那麼採集數據用採集器還是爬蟲代碼好?二者是有什麼區別,優缺點如何?
1.費用
稍微好用些的採集器基本都是收費的,不收費的採集效果不好,或者是其中某些功能使用需要付費。爬蟲代碼是自己編寫的,不需要費用。
2.操作難度
採集器是個軟體,需要學會操作方法就可以,非常容易。而想用爬蟲來採集,是有一定的難度的,因為前提是你要會編程語言,才能進行編寫代碼。你說是一款軟體好學,還是一種語言好學呢?
3.限制問題
採集器直接採集就可以,無法更改其中的功能設置,對於IP限制,有些採集器中會設置了代理使用,若是沒有代理,那麼需要自己再配合代理使用。
編寫爬蟲也要考慮網站限制問題,除了IP限制,還有請求頭,cookie,非同步載入等等,這些都是要根據不同的網站反爬蟲來加入不同的應對方法。可以使用爬蟲代碼有些復雜,需要考慮的問題比較多。
4.採集內容格式
一般採集器只能採集一些簡單的網頁,存儲格式也只有html與txt,稍微復雜的頁面無法順利採集下來。而爬蟲代碼可以根據需要來編寫,獲取數據,並存儲為需要的格式,范圍比較廣。
5.採集速度
採集器的採集速度可以設置,但是設置後,批量獲取數據的時間間隔一樣,非常容易被網站發現,從而限制你的採集。爬蟲代碼採集可以設置隨機時間間隔採集,安全性高。
採集數據用採集器還是爬蟲代碼好?從上文的分析可知,使用採集器會簡單很多,雖然採集范圍以及安全性不太好,但是也可以滿足採集量比較低的人員使用。而使用爬蟲代碼來採集數據,是有難度的,但對於學習到編程語言的人來說,也不是很難,主要就是要運用工具來突破限制,比如使用換IP工具來突破IP限制問題。爬蟲代碼的適用范圍廣,應對各方面的反爬蟲有技巧,能夠獲取到反爬蟲機制比較嚴的網站信息。
以上就是我的回答,希望對你有幫助
8. 潤乾報表怎麼用Java採集數據
如果是FineReport報表,利用程序數據集就可以實現。使用程序數據集首先需要定義程序數據源,寫一段相關代碼,把代碼重命名為.java後綴名,再把這個Java文件編譯成.class類,拷貝到報表工程/WEB-INF/classes目錄下。之後只需配置程序數據源就可以使用程序了。
9. 如何 用Java語言獲得網頁數據
你這個是不是A系統想了解B系統的頁面信息?
如果是這樣存在一個問題比較難解決,版就是數據源問題,權你A系統並不知道B系統的數據。
如果要獲取招聘信息的公司名稱,有幾個思路
1、A系統做一個iframe,這個iframe裡面嵌入你要訪問的URL,然後你通過JS,獲取這個iframe標簽裡面的所有內容,這樣數據源就解決了
2、你可以做一個瀏覽器插件,這個插件的功能就是獲取當前訪問頁面的所有字元數據,獲取到數據後將數據發送到A系統
3、對網頁進行截圖,然後通過OCR軟體獲取圖片中的文字,並將文字保存成文本,A系統讀取這個文本信息,數據源問題也可以解決
以上上個只是我臨時想到的,可能還可以運用JAVA的全文檢索框架試試看,因為沒有用過這個框架所以不知道是否能夠實現
獲取到數據源後,接下來就是業務處理了,業務處理就看具體業務進行處理就行了,技術方面就是一個文字處理的功能,技術好實現,業務比較復雜
10. java socket+Modbus進行數據採集的實例
java socketcp 就是 tcp socket 你用java nio 或 mina就可以了