在工作中要通java获取整个网页的html内容,或者某个网络文件的内容。这里我们可以使用java提供的HttpURLConnection类来实现对网页内容的抓取。
抓取爱图网www.iitu.net首页的内容, 在代码中我们将百度首页的内容存储到了一个byte数组中,当然我们有了 IO流以后还可以存储到文件中去了。
- URL url = new URL("http://www.iitu.net");
- HttpURLConnection urlCon=(HttpURLConnection)url.openConnection();
- urlCon.setConnectTimeout(50000);
- urlCon.setReadTimeout(300000);
- DataInputStream fIn;
- byte[] content = new byte[MAX_FILE_SIZE];
- fIn = new DataInputStream(urlCon.getInputStream());
- int size = 0,f_size = 0;
- while((size = fIn.read(content,f_size,2048))> 0){
- f_size += size;
- }
java实现从网页上抓取数据后写入本地库,我用的是DOM文档对象模型来抓取数据的,数据已经取到,我想把他写入文本文件不知道怎么实现?还有就是分析结构化数据写入数据库该怎么来实现才好?
将DOM文档转化成XML文件
- // 获得将DOM文档转化为XML文件的转换器,有类TransformerFactory
- // 来实现,类Transformer实现转化API。
- TransformerFactory tfactory = TransformerFactory.newInstance();
- Transformer transformer = tfactory.newTransformer();
- // 将DOM对象转化为DOMSource类对象,该对象表现为转化成别的表达形式的信息容器。
- DOMSource source = new DOMSource(document);
- // 获得一个StreamResult类对象,该对象是DOM文档转化成的其他形式的文档的容器,可以是XML文件,文本文件,HTML文件。这里为一个XML文件。
- StreamResult result = new StreamResult(new File(“text.xml”));
- // 调用API,将DOM文档转化成XML文件。
- transformer.transform(source,result);