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