我正在使用以下代码从互联网上检索数据,但我也得到了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数据,而不是任何标题或任何标题。
问候
答案 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标记之间的数据