import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;public class Test
{
public static void main(String[] args) throws Exception
{
PrintWriter pw = new PrintWriter("d:\\test.xml");//d:\\test.xml是你的xml文件路徑
pw.println(getHtmlConentByUrl(" http://www..com"));// http://www..com是你蔽磨要訪問的頁面
pw.flush();
pw.close();
}
public static String getHtmlConentByUrl(
String ssourl) {
try {
URL url = new URL(ssourl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setInstanceFollowRedirects(false);
con.setUseCaches(false);
con.setAllowUserInteraction(false);
con.connect(); StringBuffer sb = new StringBuffer();
String line = "";
BufferedReader URLinput = new BufferedReader(new InputStreamReader(con.getInputStream()));
while ((line = URLinput.readLine()) != null) {
sb.append(line);
}
con.disconnect();
return sb.toString().toLowerCase();
} catch (Exception e) {
return null;
}
}}
在獲取到的頁面攜並卜內容是字元串,這里解析有兩個辦法,一是通過dom4j把字元串轉化為dom進行解析,這辯穗樣最好,但是對方的頁面未必規范,符合dom結構。二是通過解析字元串過濾你想要的內容,該方法比較繁瑣,需要一些技巧。我有的就是二;
2. java讀取網站內容的兩種方法
HttpClient
利用apache的虛擬客戶端包獲取某個地址的內容 import java io UnsupportedEncodingException;
import java util HashSet;
import java util Iterator;
import java util Set;
import java util regex Matcher;
import java util regex Pattern;
import mons ;
import mons ;
import mons ;
public class catchMain {
/** *//**
* @param args
*/
隱握 public static void main(String[] args) {
String url = ;
String keyword= 食雀攜寬 ;
String response=createClient(url keyword);
}
public static String createClient(String url String param){
HttpClient client = new HttpClient();
String response=null;
String keyword=null;
PostMethod postMethod = new PostMethod(url);
try {
if(param!=null)
keyword = new String(param getBytes( gb ) ISO );
} catch (UnsupportedEncodingException e ) {
// TODO Auto generated catch block
e printStackTrace();
}
NameValuePair[] data = { new NameValuePair( keyword keyword) };
// 將表單的值放入postMethod中
postMethod setRequestBody(data);
try {
int statusCode = client executeMethod(postMethod);
頃亮 response = new String(postMethod getResponseBodyAsString()
getBytes( ISO ) GBK );
} catch (Exception e) {
e printStackTrace();
}
return response;
}
java自帶的HttpURLConnection
public static String getPageContent(String strUrl String strPostRequest
int maxLength) {
//讀取結果網頁
StringBuffer buffer = new StringBuffer();
System setProperty( client defaultConnectTimeout );
System setProperty( client defaultReadTimeout );
try {
URL newUrl = new URL(strUrl);
HttpURLConnection hConnect = (HttpURLConnection) newUrl
openConnection();
//POST方式的額外數據
if (strPostRequest length() > ) {
hConnect setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(hConnect
getOutputStream());
out write(strPostRequest);
out flush();
out close();
}
//讀取內容
BufferedReader rd = new BufferedReader(new InputStreamReader(
hConnect getInputStream()));
int ch;
for (int length = ; (ch = rd read()) >
&& (maxLength <= || length < maxLength); length++)
buffer append((char) ch);
rd close();
hConnect disconnect();
return buffer toString() trim();
} catch (Exception e) {
// return 錯誤:讀取網頁失敗! ;
return null;
}
lishixin/Article/program/Java/hx/201311/26339
3. 如何 用Java語言獲得網頁數據
你這個是不是A系統想了解B系統的頁面信息?
如果是這樣存在一個問題比較難解決,版就是數據源問題,權你A系統並不知道B系統的數據。
如果要獲取招聘信息的公司名稱,有幾個思路
1、A系統做一個iframe,這個iframe裡面嵌入你要訪問的URL,然後你通過js,獲取這個iframe標簽裡面的所有內容,這樣數據源就解決了
2、你可以做一個瀏覽器插件,這個插件的功能就是獲取當前訪問頁面的所有字元數據,獲取到數據後將數據發送到A系統
3、對網頁進行截圖,然後通過OCR軟體獲取圖片中的文字,並將文字保存成文本,A系統讀取這個文本信息,數據源問題也可以解決
以上上個只是我臨時想到的,可能還可以運用JAVA的全文檢索框架試試看,因為沒有用過這個框架所以不知道是否能夠實現
獲取到數據源後,接下來就是業務處理了,業務處理就看具體業務進行處理就行了,技術方面就是一個文字處理的功能,技術好實現,業務比較復雜
4. java網頁獲取
StringBuffer用之前拍褲要初始化,eg:襲缺簡StringBuffer sb = new StringBuffer();
StringBuffer document=new StringBuffer();
String line; /扮逗/ 讀入網頁信息
while ((line = reader.readLine()) != null){
document.append(line+"\n");
}
String title = document.toString();
title = title.substring(title.indexOf("<title>") + 7,
title.indexOf("</title>"));
System.out.println(title);
5. java語言獲取網頁標簽中的內容
新浪的那個天氣的值是通過js動態載入的,原始html頁面是<div id="SI_Weather_Wrap" class="now-wea-wrap clearfix"></div> 。
而jsoup只是對html進行解析,所回以是找不到js動態生成的哪答些信息的。
6. 如何通過Java代碼實現對網頁數據進行指定抓取
通過Java代碼實現對網頁數據進行指定抓取方法步驟如下:
1在工程中導入Jsoup.jar包
2獲取網址url指定HTML或者文檔指定的body
3獲取網頁中超鏈接的標題和鏈接
4獲取指定博客文章的內容
5獲取網頁中超鏈接的標題和鏈接的結果
7. java獲取html
Java訪問網路url,獲取網頁的html代碼
方式一:
一是使用URL類的openStream()方法:
openStream()方法與制定的URL建立連接並返回InputStream類的對象,以從這一連接中讀取數據;
openStream()方法只能讀取網路資源。
二是使用URL類的openConnection()方法:
openConnection()方法會創建一個URLConnection類的對象,此對象在本地機和URL指定的遠程節點建立一條HTTP協議的數據通道,可進行雙向數據傳輸。類URLConnection提供了很多設置和獲取連接參數的方法,最常用到的是getInputStream()和getOutputStream()方法。
openConnection()方法既能讀取又能發送數據。
列如:
public static void main(String args[]) throws Exception {
try {
//輸入url路徑
URL url = new URL("url路徑"); InputStream in =url.openStream(); InputStreamReader isr = new InputStreamReader(in); BufferedReader bufr = new BufferedReader(isr); String str; while ((str = bufr.readLine()) != null) { System.out.println(str); } bufr.close(); isr.close(); in.close(); } catch (Exception e) { e.printStackTrace(); } }
8. java如何獲取網頁中的文字
如果要獲取表單的內容,
<from>
<input type="text" name= "username" value=""/>
</from>
request.getparameter("username");
如果是獲取網頁內容,估計是要獲版取url,從頭到尾爬了權