如何使用java从互联网获取数据?

时间:2011-12-26 04:54:29

标签: java html

我正在使用以下代码从互联网上检索数据,但我也得到了HTTP标题,这对我来说毫无用处。

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数据,而不是任何标题或任何标题。

问候

4 个答案:

答案 0 :(得分: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 :(得分: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>

答案 2 :(得分:0)

你的意思是将html翻译成文字?如果是,您可以使用org.htmlparser.*。在http://htmlparser.sourceforge.net/

取一个厕所

答案 3 :(得分:0)

您可以解析完整数据以搜索字符串,并仅接受html标记之间的数据