📄 foperator.java
字号:
package spider;
import spider.Form;
import java.util.ArrayList;
import java.util.*;
public class FOperator//判断表单中是否有作者,搜索等关键字
{
private String html;//网页代码
private Form Form;//关联类Form:提取表单中的个属性的值
private Map keywordValueMap;//存放的是,一个Map中的键值对,一个List中是键
private Map valueMap;//,一个Map中的键值对
private List keyWordList;//一个List中是键
//初始化
FOperator(String html,Map keywordValueMap)
{
this.html =html;
this.keywordValueMap =keywordValueMap;
}
//从网页代码中提取一段字符串
public String pointForm(int beginIndex, int endIndex, String spiderHtml)//从spiderHtml中取出从beginIndex到endIndex的一段字符串
{
String oneForm = " ";
try
{
oneForm = spiderHtml.substring(beginIndex, endIndex);
}
catch (Exception e)
{
System.out.println("此处有异常" + spiderHtml);
}
return oneForm;
}
//判断是否是本领域的表单
public boolean isDeepWebSearchInteface()//判断form表单中是否有传入的关键字
{
int count=0;//统计含有关键词的个数
int values=0;
if(html!=null)
{
String[] forms=html.split("<form");
//System.out.println("分割表单");
for(int fm=1;fm<forms.length ;fm++)//逐个表单进行检查
{
String oneFormStream=null;
int beginIndex=0;
int endIndex=0;
if(forms[fm].indexOf("form>")!=-1)
{
endIndex=forms[fm].indexOf("/form>");
}
oneFormStream=pointForm( beginIndex, endIndex, forms[fm]);//提取一个表单字符串
//System.out.println("表单源码--第"+fm+"个表单"+oneFormStream);
keyWordList=(List)keywordValueMap.get("keyWordList");
valueMap=(Map)keywordValueMap.get("valueMap");
String oneFormStreamHasNoKongGe=oneFormStream.replaceAll(" ", "");//去掉form中的空格
if(oneFormStreamHasNoKongGe.indexOf("注册")!=-1 || oneFormStreamHasNoKongGe.indexOf("登录")!=-1 )
{
System.out.println("有注册,登录");
}
else
{
for(int kwif=0;kwif<keyWordList.size() ;kwif++)//查看是否有关键字表中的关键字
{
//System.out.println("用"+keyWordInForm.get(kwif).toString().trim()+"检查表单");
if(oneFormStreamHasNoKongGe.indexOf(keyWordList.get(kwif).toString().trim())!=-1)
{
System.out.println("表单中含有--"+keyWordList.get(kwif).toString().trim());
System.out.println("值是:"+valueMap.get(keyWordList.get(kwif).toString().trim()));//把字符串转变为int型
values=values+((Integer)valueMap.get(keyWordList.get(kwif).toString().trim())).intValue();//keyWordInForm.get(kwif)).intValue();
count++;
}
}
if(values>=10)//是本领域的表单
{
System.out.println("共有"+count+"个关键词,总和为------"+values+"----阈值通过");
Form=new Form();
System.out.println("FOperator类中创建Form类-------form表单里的内容是---------------");
this.Form.setFormString("<form "+oneFormStream+"/form>");//设置表单代码,用于接口信息抽取
//System.out.println(this.Form.getFormString());
return true;
}
else//判断是否是站内搜索或搜索引擎
{
//System.out.println("表单中没有数据库表中关键词");
System.out.println("共有"+count+"个关键词,总和为------"+values+"----阈值不够");
}
}
} //end for
}
else
{
// System.out.println("网页中没有关键词");
}
return false;//表单中没有关键词也不是站内搜索或搜索引擎
}
public boolean isPagehasbook()//判断form网页中是否有传入的关键字
{
if(html!=null)
{
//System.out.println(html);
int count=0;
int values=0;
keyWordList=(List)keywordValueMap.get("keyWordList");
valueMap=(Map)keywordValueMap.get("valueMap");
String htmlHasNoKongGe=html.replaceAll(" ", "");
for(int kwif=0;kwif<keyWordList.size() ;kwif++)//查看是否有关键字表中的关键字
{
//System.out.println("用"+keyWordInForm.get(kwif).toString().trim()+"检查表单");
if(htmlHasNoKongGe.indexOf(keyWordList.get(kwif).toString().trim())!=-1)
{
System.out.println("网页中含有--"+keyWordList.get(kwif).toString().trim());
System.out.println("值是:"+valueMap.get(keyWordList.get(kwif).toString().trim()));//把字符串转变为int型
values=values+((Integer)valueMap.get(keyWordList.get(kwif).toString().trim())).intValue();//values=values+((Integer)keyWordInForm.get(kwif)).intValue();
count++;
}
}
if(values>=10)//是本领域的表单
{
System.out.println("共有"+count+"个关键词,总和为------"+values+"----阈值通过");
return true;
}
else//判断是否是站内搜索或搜索引擎
{
System.out.println("表单中没有关键词");
System.out.println("共有"+count+"个关键词,总和为------"+values+"----阈值不够");
}
}
else
{
System.out.println("网页中没有关键词");
}
return false;
}
public boolean isOneTextBox()
{
return true;
}
public boolean isWebSetSearchInteface()
{
return true;
}
public Form getForm()
{
return Form;
}
public String getHtml()
{
return html;
}
public void setHtml(String html)
{
this.html = html;
}
public Map getKeyWordInForm()
{
return keywordValueMap;
}
public void setKeyWordInForm(Map keywordValueMap)
{
this.keywordValueMap = keywordValueMap;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -