网络爬虫1

来源:互联网 发布:全球宏观经济数据库 编辑:程序博客网 时间:2024/06/11 06:09
网络爬虫的原理与应用


        网路爬虫就是从互联网中的海量信息不断地抓取有用的信息.我们熟知的搜索引
擎的信息都来自这里.网络爬虫需要实现的基本功能是下载网页和对URL地址进行遍历

爬虫的基本原理


          如果把网页看成节点,网页之间的链接则可以看成边,那么,整个互联网则可看成是一

个特别巨大的非连通图.为了获取需要的网页,我们首先需要有一个初始化的URL列表,然后

根据这些列表访问网页.这时,有人可能就会问了,像Google或百度是怎么设置初始化的URL

列表的?一般来说,他们会把网站提交给分类目录,爬虫可以从开放式的分类目录抓取


页面获取模块


    根据URL来获取当前页面的内容,其实就是普通的I/O操作.


下面是示例代码:


import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;public class DownLoadHTML {/* * file:DownLoadHTML * 作用:下载HTML文件 *//* * function:downloadHTML * @param src:需要下载的html页面的地址 * @param filePath:html源码存储的路径 * @param fileName:存储的文件名 */public static void downloadHTML(String src,String filePath,String fileName){try {URL url = new URL(src);URLConnection conn = url.openConnection();//设置超时conn.setConnectTimeout(10*1000);//防止屏蔽程序抓取conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1");File dir = new File(filePath);//如果路径不存在,创建一个新的路径if(!dir.exists()){dir.mkdirs();}File file = new File(filePath+File.separator+fileName);byte[] b = new byte[1024];//读取的长度InputStream in =  conn.getInputStream();int len = 0;FileOutputStream out = new FileOutputStream(file);BufferedOutputStream bf = new BufferedOutputStream(out);    while((len = in.read(b)) != -1){     bf.write(b,0,len);    }    bf.flush();    bf.close();    out.close();    out.close();    in.close();    } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args){downloadHTML("http://www.csdn.net/","e:\\download","test.html");System.out.println("下载完成!");}}


以上代码是根据特定的URL下载页面.下节将介绍如何把下载的页面提取内容.

0 0
原创粉丝点击