2011-12-26 29 views
1

我使用以下代碼從互聯網上檢索數據,但我得到的HTTP標頭也是無用的。如何從互聯網使用java只得到<html>數據</html>?

URL url = new URL(webURL); 
      URLConnection conn = url.openConnection(); 
      BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      String inputLine; 

      while ((inputLine = in.readLine()) != null) 
       System.out.println(inputLine); 
      in.close(); 

我怎樣才能得到html數據只有沒有任何標題或任何。

關於

+1

你能顯示輸出?你不應該得到這個標題。頭文件是由conn.getHeader()(或類似的東西)獲得的。 InputStream應該只是請求中的數據。有可能類似頭文件的東西在請求的主體中。 – 2011-12-26 05:00:35

+0

使用html解析器 - jsoup。 – adatapost 2011-12-26 05:01:10

回答

0

您想將html翻譯爲文本?如果是這樣,你可以使用org.htmlparser.*。以一個廁所在http://htmlparser.sourceforge.net/

+1

如果您回答問題,請使用完整的句子。 – 2011-12-26 05:04:39

+0

對不起,我是這個溫室的綠手。我會提高我的回答技巧。 – 2011-12-26 05:07:59

0

您可以分析的完整數據搜索的字符串,只有html標記之間接受數據

1

檢索和分析使用TagSoup文檔:

Parser p = new Parser(); 
SAX2DOM sax2dom = new SAX2DOM(); 
URL url = new URL("http://stackoverflow.com"); 
p.setContentHandler(sax2dom); 
p.parse(new InputSource(new InputStreamReader(url.openStream()))); 
org.w3c.dom.Node doc = sax2dom.getDOM(); 

的TagSoup和SAX2DOM包:

import org.ccil.cowan.tagsoup.Parser; 
import org.apache.xalan.xsltc.trax.SAX2DOM; 

寫的內容System.out

TransformerFactory tFact = TransformerFactory.newInstance(); 
Transformer transformer = tFact.newTransformer(); 
Source source = new DOMSource(doc); 
Result result = new StreamResult(System.out); 
transformer.transform(source, result); 

這些都來自import javax.xml.transform.*

1

您檢索使用URLConnecton正確的數據。但是,如果你想讀取/訪問特定的html標籤,你必須使用HTML解析器。我建議你使用jSoup

例子:

org.jsoup.nodes.Document doc = org.jsoup.Jsoup.connect("http://your_url/").get(); 
org.jsoup.nodes.Element head=doc.head(); // <head> tag content 
org.jsoup.nodes.Element body=doc.body(); // <body> tag content 

System.out.println(doc.text()); // Only text inside the <html>