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

📄 collectedidspage.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;

import java.util.ArrayList;

import org.indigo.parser.Parser;
/**
 * 此类时对模板的第二部分即获取id时的一些规则进行了封装。
 * 如id的前后标识,id体的前后标识等。
 * @author wbz
 *
 */
public class CollectedIdsPage
{
    private VisitPage itsVisitPage=null;
    private String itsIdFront=null;
    private String itsIdBack=null;
    private String itsBodyBack=null;
    private String itsBodyFront=null;
    private String itsUrl=null;
    public static boolean isOpen=false;
    private boolean IsByPost=false;
    private String itsEncoding=null;
    /**
     * 默认的构造函数,
     * 在不需要id时,如采集价格数据时要用的的构造函数
     * 把id的前后标示置为空。
     *
     */
    public CollectedIdsPage()
    {
        itsIdFront = null;
        itsIdBack = null;        
    }
    /**
     * 通过id的前后标示实例化此类。
     * @param front  前标识。
     * @param back   后标识。
     */
    public CollectedIdsPage( String front, String back )
    {
        itsIdFront = front;
        itsIdBack = back;
    }
    /**
     * 通过id的前后标识,及有效id体的前后标识构造函数。
     * @param front  id前标识
     * @param back   id后标识
     * @param bodyFront  有效id体的前标识
     * @param bodyBack   有效id体的后标识
     */
    public CollectedIdsPage(String front, String back ,String bodyFront,String bodyBack)
    {
    	 itsIdFront = front;
         itsIdBack = back;
         itsBodyBack=bodyBack;
         itsBodyFront=bodyFront;
    }
    /**
     * 设置是否通过post方法获取id。
     * @param IsByPost
     */
    public void setIsByPost(boolean IsByPost)
    {
    	this.IsByPost=IsByPost;
    }
    /**
     * 设置能获取到id页面url。
     * @param url
     */
    public void setUrl( String url )
    {
        itsUrl = url;
    }
    /**
     * 获取所以的满足条件的id。
     * @return
     */
    public ArrayList getIds()
    {
        ArrayList ids = new ArrayList();
        /**
         * 如果是id的前后标识为空,或通过post方法。
         */
        if( itsIdFront==null || itsIdBack==null ||IsByPost)
        {
        	if(IsByPost)//要通过post方法时,用此代码获得id。
        	{
        		ids.add(0,itsUrl);
        		isOpen=true;
        	//	if(itsIdFront==null || itsIdBack==null)
        		return ids;
        	}
        	/**
        	 * id的前后标识为空,如采集价格数据时,通过此代码获取id。
        	 * 在采集价格数据时id就是页码。
        	 */
            String id;
            id = String.valueOf( itsVisitPage.getCurrentPNum() );
            ids.add( 0, id );
            isOpen=true;
          //  if(itsIdFront==null || itsIdBack==null)
            return ids;
        }
        /**
         * 如果id前后标识不为空,则通过id的前后标识获取id。
         */
        String id=null;
        int i=0;
        Parser parser = new Parser();
        parser.setUrl( itsUrl );
        parser.setItsEncoding(itsEncoding);
        isOpen=parser.open();;
        if(itsBodyBack!=null&&itsBodyFront!=null)
           parser.setItsPageStr( itsBodyFront,itsBodyBack);
        do
        {  
	        id = parser.parseWith( itsIdFront, itsIdBack );
	        if( id!=null )
	            {ids.add( i++, id );
	            }
        }while( id!=null );
        
        parser.close();
        parser = null;
        
        return ids;
    }

    public void setVisitPage(VisitPage visitPage)
    {
       itsVisitPage = visitPage;
    }
	public void setItsEncoding(String itsEncoding) {
		this.itsEncoding = itsEncoding;
	}
}

⌨️ 快捷键说明

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