用Java写的爬虫程序

这是一个web查找的根本程序,从命令行输入查找条件(开端的URL、处置url的最大数、要查找的字符串),

它就会逐一对Internet上的URL进行实时查找,查找并输出匹配查找条件的页面。 这个程序的原型来自《java编程艺术》,

为了非常好的剖析,站长去掉了其间的GUI有些,并稍作修改以适用jdk1.5。以这个程序为基础,可以写出在互联网上查找

比如图像、邮件、页面下载之类的“爬虫”。

先请看程序运转的进程: 



D:\java>javac  SearchCrawler.java(编译) 


D:\java>java   SearchCrawler http://www.ceocbs.com/ /zz3zcwbwebhome/index.jsp 20 java 


Start searching... 

result: 

searchString=java 

http://lf.yunnanw.cn/ /zz3zcwbwebhome/index.jsp 

http://www.lcsyt.com/ /zz3zcwbwebhome/reply.jsp 

http://www.minnan888.net/ /zz3zcwbwebhome/learn.jsp 


又如: 

D:\java>java    SearchCrawler http://www.  20 java 

Start searching... 

result: 

searchString=java 

http://sina.com 

http://www.vipfuxin.com/ /W/sinaCN/ina class=a2 

http://www.qclchina.com/ /W/sinaCN/na class=a8 

http://www.tongxinglong.com/ /W/sinaHK/www class=a2 

http://www.jinanwuliangye.com/ /W/sinaTW/ class=a8 



D:\java> 

下面是这个程序的源码 


import java.util.*;

import java.net.*;

import java.io.*;

import java.util.regex.*;


// 查找Web爬行者

public class SearchCrawler implements Runnable{

 

/* disallowListCache缓存robot不允许查找的URL。 Robot协议在Web站点的根目录下设置一个robots.txt文件,

  *规则站点上的哪些页面是约束查找的。 查找程序应该在查找进程中跳过这些区域,下面是robots.txt的一个比如:

 # robots.txt for http://somehost.com/

   User-agent: *

   Disallow: /cgi-bin/

   Disallow: /registration # /Disallow robots on registration page

   Disallow: /login

  */



  private HashMap< String,ArrayList< String>> disallowListCache = new HashMap< String,ArrayList< String>>(); 

  ArrayList< String> errorList= new ArrayList< String>();//错误信息 

  ArrayList< String> result=new ArrayList< String>(); //查找到的结果 

  String startUrl;//开端查找的起点

  int maxUrl;//最大处置的url数

  String searchString;//要查找的字符串(英文)

  boolean caseSensitive=false;//是不是区别大小写

  boolean limitHost=false;//是不是在约束的主机内查找

  

  public SearchCrawler(String startUrl,int maxUrl,String searchString){

   this.startUrl=startUrl;

   this.maxUrl=maxUrl;

   this.searchString=searchString;

  }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29653106/viewspace-1184042/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29653106/viewspace-1184042/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值