当前位置:编程学习 > JAVA >>

请帮忙看一下这个java程序能实现抓网页吗

java新手初学者  不太懂呀 问下面这个程序能抓网页内容吗?

package com.m.m;
import java.util.ArrayList;//导入关于ArrayList类的包
public class Catcher {
 ArrayList threads=new ArrayList();//存储未处理的URL(网页地址)
public static  boolean isFinished=false;//是否已经把所有的链接存到threads了
public  synchronized String getUrl()
{
if (threads.size()>0)
{
String tmp=String.valueOf(threads.get(0));
threads.remove(0);
return tmp;
}
else
return null;//返回没有地址,当然也没内容
}
public void process (){
//处理预处理
//下面开始十个线程等待处理
new Thread(new Processe(this)).start();//创建一个Processer对象,并且启动
new Thread(new Processe(this)).start();
new Thread(new Processe(this)).start();
new Thread(new Processe(this)).start();
new Thread(new Processe(this)).start();
new Thread(new Processe(this)).start();
new Thread(new Processe(this)).start();
new Thread(new Processe(this)).start();
new Thread(new Processe(this)).start();
new Thread(new Processe(this)).start();
//进入翻页的处理
    for(int j=0;j<10;j++)//从第一页翻到最后一页
    {
     for(int i=0;i<100;i++)
    {
     threads.add("http://news.qq.com/");//把URL存进去
    }
    }
    isFinished=true;
}
}
class Processe implements Runnable //创建一个Processer类实现Runnable接口
{
Catcher c;
public Processe (Catcher c)
{
this.c=c;
}
public void run ()
{
String tmp=null;
while ((tmp=c.getUrl())!=null||!c.isFinished)//当还有记录时就处理
{
if(tmp!=null)
{
//处理将一条信息保存到数据库
}
else  //如果没标志处理则让线程休眠一妙再重新开始处理
{
try
{
Thread.sleep(1000);
}catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}
}

java 抓网页    线程
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,