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

📄 foperator.java

📁 本程序可从网上利用百度搜索引擎下载和输入关键词有关的网页
💻 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 + -