⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 beginpage.java

📁 用来为垂直搜索引擎抓取数据的采集系统
💻 JAVA
字号:
/*
 * *****************************************************
 * Copyright (c) 2005 IIM Lab. All  Rights Reserved.
 * Created by xuehao at 2005-10-12
 * Contact: zxuehao@mail.ustc.edu.cn
 * *****************************************************
 */

package org.indigo.pages;
/**
 * 对模板配置中的开始部分进行了封装,
 * 如起始url,起始页码,要采集的页码数,每次采集递增页码数等。
 * @author wbz
 *
 */
public class BeginPage
{
    protected String itsBeginUrl=null, itsBaseUrl=null;
    protected int pNum=1,endPNum=10,incPNum=1;
    protected final int OUTFLOWLINK=-1;
    protected boolean onlyOne=false;
   
    protected String itsKeyForLink = null;

    /**
     * 通过指定在url中关键字进行构造此类。
     * @param key
     */
    public BeginPage( String key )
    {
        if( key.endsWith("=") )
            itsKeyForLink = key;
        else
            itsKeyForLink = key + "=";
    }

  /**
   * 设置起始的url。
   * @param url
   */
    public void setBeginUrl( String url )
    {
//        if( itsBeginUrl==null )
            itsBeginUrl = url;
    }
    /**
     * 设置起始页码。
     * @param i
     */
    public void setStartPNum(int i)
    {
        pNum = i;
    }
    /**
     * 设置结束页码。
     * @param i
     */
    public void setEndPNum(int i)
    {
        endPNum = i;
    }
    /**
     * 设置采集时的递增页码数。
     * @param i
     */
    public void setIncPNum(int i)
    {
        incPNum = i;
    }
    /**
     * 一次设置起始页码,结束页码,和每次递增页码数。
     * @param start
     * @param end
     * @param inc
     */
    public void setParameters( int start, int end, int inc )
    {
        setStartPNum( start );
        setEndPNum( end );
        setIncPNum( inc );
    }
    
//    protected String buildLink( int pNum, String key )
    /**
     * 在进行下一页的采集时生成新的url的方法。
     */
    public String buildLink( int pNum, String key )
    {
    	
        String link=null;
        link = getBeginUrl();
        int i;
        i = link.indexOf( key );
        if(i==-1&&!onlyOne)
        {
        	onlyOne=true;
        	return link;
        	
        }
        	
        if( i==-1 &&onlyOne)
            return null;
        
        i = i+key.length();
        String subStr1=null,subStr2=null;
        subStr1 = link.substring( 0, i );
        subStr2 = link.substring( i );
        
        if( subStr2.equals("") )
        {
            link = subStr1+pNum;
            return link;
        }
        i = 0;
        char ch;
        ch = subStr2.charAt(i);
        for( i=0;  i<subStr2.length(); i++ )
        {
            ch = subStr2.charAt(i);
            if( !Character.isDigit( ch ) )
                break;
        }
        subStr2 = subStr2.substring( i );

        link = subStr1 + pNum + subStr2;
        
        return link;
    }
    /**
     * 获取当前页码。
     * @return
     */
    protected int getCurrentPNum()
    {
        return pNum;
    }
    /**
     * 获取下一页的页码。
     * @return
     */
    protected int getNextPNum()
    {
        pNum += incPNum;
        if (pNum > endPNum)
            pNum = this.OUTFLOWLINK;
        return pNum;
    }
    /**
     * 获取起始的url。
     * @return
     */
    protected String getBeginUrl()
    {
        return itsBeginUrl;
    }
/**
 * 设置基url。
 * @param url
 */
    private void setBaseUrl( String url )
    {
        if( itsBaseUrl==null )
            itsBaseUrl = url;
    }

    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -