java实现网页爬虫的一个小例子

来源:互联网 发布:js返回顶部过渡 效果 编辑:程序博客网 时间:2024/04/29 04:22

网络爬虫,从网上爬取信息,保存在本地。

通过自身的实践,觉得重点就这几个方面

一、java文件读写

二、利用jsoup解析html代码信息

三、新文件覆盖旧文件

首先从最简单的抓取百度首页www.baidu.com入手吧

package crawler;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;public class maincrawler {private static final String PATH = "/data";private static final String WEBNAME = "baidu.html";public static void main(String[] args) {URL url = null;URLConnection conn = null;InputStream is = null;// 创建url连接并建立输入字节流try {url = new URL("http://www.baidu.com");conn = url.openConnection();is = conn.getInputStream();} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}// 保存文件的到本地文件夹(/data/)try {saveFile(PATH, WEBNAME, is);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static int saveFile(String path, String webName, InputStream is) throws Exception{BufferedWriter writer = null;BufferedReader reader = null;try {File f = new File(path);if (!f.exists()) {f.mkdirs();}File file = new File(path + File.separator + webName);if (!file.exists()) {file.createNewFile();} else {return 0;}FileWriter fw=new FileWriter(file);writer=new BufferedWriter(fw);reader=new BufferedReader(new InputStreamReader(is,"UTF-8"));String inputLine=null;while((inputLine=reader.readLine())!=null){writer.write(inputLine);writer.flush();}} catch (Exception e) {e.printStackTrace();} finally{if(is!=null){is.close();}if(writer!=null){writer.close();}if(reader!=null){reader.close();}}return 1;}}
这段代码简单的运行就会抓取出百度的首页面,查看文件在你坐在目录盘的“/data/baidu.html”.例如如果你的java文件在D盘,那么文件应该在"D:/data/baidu.html"

可能会因为编码问题出现错误,这个我正在解决中,明天接着聊稍微复杂些的内容。


原创粉丝点击