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

📄 quarry.js

📁 CallSun 人才招聘求职系统 V2.20
💻 JS
📖 第 1 页 / 共 2 页
字号:
// JScript 文件
var Ajax = null;
var CurrentRowIndex = 0;
var DataList = null;
var DataRowList = new Array();
var UrlTransfer = "Blank.aspx?Url=";
var PageIndex = 1;
var PageCount = 0;
var PageParameterName = null;
var PageParameterOther = null;
var AllowPaging = true;
var TargetUrl = null;
var TargetParameters = null;
var TargetMethod = null;
var QuarryUrlMode = null;
var QuarryUrl = null;
var QuarryMethod = null;
var DataBlockBegin = null;
var DataBlockEnd = null;
var ParameterBegin = null;
var ParameterEnd = null;
var ParameterBeginLength = 0;
var ParameterEndLength = 0;
var ProcessBar = null;
var Log = null
var Enter = "...\r\n";
var PagePercent = 0;
var Percent = 100.0;
var CurrentPercent = 0;
var PerPercent = 0;
var SaveLog = true;
var DataPanelTemp = null;
var QuarryState = 1;
var ErrorPass = true;

var IsQuarryInnerPage = "0";
var InnerPageQuarryMethod = null;
var InnerPageQuarryUrl = null;
var InnerPageQuarryUrlMode = null;
var InnerPageParameterBegin = null;
var InnerPageParameterEnd = null;
var InnerPageParameterList = null;
var RowIndex = 0;

var BatchSaving = false;
var BatchCount = 50;
var BatchIndex = 0;

//1,采集,0,停止采集

function PageInit()
{    
    DataList = document.getElementById("QuarryDataList");
    PageCount = Math.floor(document.getElementById("PageCount").value) + PageIndex - 1;
    PageParameterName = document.getElementById("PageParameterName").value;
    PageParameterOther = document.getElementById("PageParameterOther").value;
    AllowPaging = (document.getElementById("AllowPaging").value == "1");
    
    TargetUrl = document.getElementById("TargetUrl").value;
    var index = TargetUrl.indexOf("?");
    if (index >= 0)
    {
        TargetParameters = TargetUrl.substr(index + 1);
        TargetUrl = TargetUrl.substring(0,index);
    }    
    else
    {
        TargetParameters = null;
    }
    TargetMethod = document.getElementById("TargetMethod").value;
    QuarryUrlMode = document.getElementById("QuarryUrlMode").value;
    
    QuarryUrl = document.getElementById("QuarryUrl").value;
    QuarryMethod = document.getElementById("QuarryMethod").value;
    DataBlockBegin = document.getElementById(document.getElementById("DataBlockBegin").value).value;
    DataBlockEnd = document.getElementById(document.getElementById("DataBlockEnd").value).value;
    ParameterBegin = document.getElementById(document.getElementById("ParameterBegin").value).value;
    ParameterEnd = document.getElementById(document.getElementById("ParameterEnd").value).value;
    ParameterBeginLength = ParameterBegin.length;
    ParameterEndLength = ParameterEnd.length;
    ProcessBar = document.getElementById("ProcessBarCtl");
    Log = document.getElementById("LogCtl");
    CurrentPercent = 0;
    if (document.getElementById("AllowPaging").value == "0")
    {
        AllowPaging = false;
    }
    else
    {
        AllowPaging = true;
    }
    if (AllowPaging)
    {
        if (PageCount != 0)
        {
            PagePercent = Percent / (PageCount - PageIndex + 1);
        }
        else
        {
            PagePercent = Percent;
            PageCount = PageIndex;
        }
    }
    else
    {
        PagePercent = Percent;
        PageCount = PageIndex;
    }
    PerPercent = PagePercent * 0.1;
    PagePercent -= PerPercent;
    ErrorPass = document.getElementById("ErrorContinue").checked;
        
    IsQuarryInnerPage = document.getElementById("IsQuarryInnerPage").value;
    InnerPageQuarryMethod = document.getElementById("InnerPageQuarryMethod").value;
    InnerPageQuarryUrl = document.getElementById("InnerPageQuarryUrl").value;
    InnerPageQuarryUrlMode = document.getElementById("InnerPageQuarryUrlMode").value;
    InnerPageParameterBegin = document.getElementById(document.getElementById("InnerPageParameterBegin").value).value;
    InnerPageParameterEnd = document.getElementById(document.getElementById("InnerPageParameterEnd").value).value;
    
    BatchCount = GetFormValueAsInt("BatchCount",50);
        
}

function StopQuarry()
{
    QuarryState = 0;
    alert("已停止采集");
}

function StartQuarry()
{
    QuarryState = 1;
    PageIndex = GetFormValueAsInt("PageStart",1);
    PageInit();
    QuarryDataList();
}

function SetProcessBar()
{
    var value = (Math.round(CurrentPercent * 100) / 100) + "%";
    ProcessBar.style.width = value;
    ProcessBar.innerText = value;    
}

function AddLog(log)
{
    if(Log.value.length > 10000)
    {
        Log.value = "";
    }
    var today = new Date();
    Log.insertAdjacentText("beforeEnd",FillString(today.getMinutes() + ":" + today.getSeconds() + ":" + today.getMilliseconds(),"-",18) + "-"  +  log + Enter);
    Log.doScroll("pageDown");
}

function FillString(value,fullStr,length)
{
    while (value.length < length)
    {
        value += fullStr;
    }
    return value;
}

function Link()
{
    this.LinkText = "";
    this.LinkUrl = "";
    this.LinkQueryString = "";
}

function Login()
{
    Ajax = new AjaxClass();
    Ajax.RequestUrl = document.getElementById("LoginUrl").value;
    Ajax.Method = "post"
    Ajax.IsAsyn = true;
    Ajax.ContentType = "application/x-www-form-urlencoded";
    Ajax.StateChangeEvent = XmlHttpLoginStateChange;
    var parameters = document.getElementById("CtlLoginName").value + "=" + document.getElementById("LoginName").value;
    parameters += "&" + document.getElementById("CtlPassword").value + "=" + document.getElementById("Password").value;
    parameters += "&" + document.getElementById("CtlValidateCode").value + "=" + document.getElementById("ValidateCode").value;
    parameters += "&" + document.getElementById("Parameters").value;
    Ajax.Content = parameters;
    Ajax.SendRequest();
}

function XmlHttpLoginStateChange()
{
    if (Ajax.XmlHttp.readyState == 4)
    {
	    if (Ajax.XmlHttp.status == 200)
	    {
	        alert("成功发出登录请求");
		    Ajax = null; 
	    }
	    else
	    {
	        alert("登录失败。错误代码为:[" + Ajax.XmlHttp.status + "]," + Ajax.XmlHttp.statusText);
	    }
    }
}

function QuarryDataList()
{
    if (QuarryState == 0)
    {
        return;
    }
    AddLog("初始化采集第" + PageIndex + "页信息");
    ClearQuarryDataList();
    Ajax = new AjaxClass();
    var queryString = PageParameterName + "=" + PageIndex;// + "&date=" + new Date().getTime();
    if (PageParameterOther != "")
    {
        queryString += "&" + PageParameterOther;
    }
    if (TargetParameters != null)
    {
        queryString +=  "&" + TargetParameters;
    }
    queryString = queryString.replace(/&/g,"|||");
    Ajax.RequestUrl = UrlTransfer + TargetUrl + "&QueryString=" + queryString + "&Method=" + TargetMethod;
 // Ajax.RequestUrl = TargetUrl + "?" + PageParameterName + "=" + PageIndex + "date=" + new Date().getTime();
    Ajax.Method = "get";
    Ajax.IsAsyn = true;
    Ajax.ContentType = "application/x-www-form-urlencoded";
    Ajax.StateChangeEvent = XmlHttpQuarryDataListStateChange;
    AddLog("发送采集请求,等待服务器回应");
    Ajax.SendRequest();
    CurrentPercent += PerPercent * 0.25;
    SetProcessBar();
}

function XmlHttpQuarryDataListStateChange()
{
    if (QuarryState == 0)
    {
        return;
    }
//    AddLog("服务器回应代码:[" + Ajax.XmlHttp.readyState + "]");
    if (Ajax.XmlHttp.readyState == 4)
    {
        CurrentPercent += PerPercent * 0.25;
        SetProcessBar();
	    if (Ajax.XmlHttp.status == 200)
	    {
//	        AddLog("分析服务器返回数据");
		    DataPanelTemp = Ajax.XmlHttp.responseText;
            var dataBeginIndex = DataPanelTemp.indexOf(DataBlockBegin) + DataBlockBegin.length + 1;
            var dataEndIndex = DataPanelTemp.indexOf(DataBlockEnd, dataBeginIndex);
            if ((dataBeginIndex == -1) || (dataEndIndex == -1))
            {
                alert("未能获取到数据块");
                return;
            }
            DataPanelTemp = DataPanelTemp.substring(dataBeginIndex, dataEndIndex);
		    CurrentPercent += PerPercent * 0.125;
            SetProcessBar();
		    Ajax = null;
//		    AddLog("创建采集列表");
            var datalist = GetParameters(DataPanelTemp,ParameterBegin,ParameterEnd);
            if (IsQuarryInnerPage == "0")
            {
		        GetQuarryDataList(datalist);
		        CurrentPercent += PerPercent * 0.125;
                SetProcessBar();
		        window.setTimeout("QuarryStart()", 10);
		    }
		    else
		    {
		        InnerPageParameterList = datalist;
		        QuarryInnerPageStart();
		    }
	    }
	    else
	    {
	        AddLog("操作失败。错误代码为:[" + Ajax.XmlHttp.status + "]," + Ajax.XmlHttp.statusText);
	        if (ErrorPass)
	        {
		        CurrentPercent += PerPercent * 0.125;
                SetProcessBar();
		        Ajax = null;
		        CurrentPercent += PerPercent * 0.125;
                SetProcessBar();
                if (AllowPaging)
                {
                    CurrentRowIndex = 0;
                    PageIndex++;
                    if (PageIndex <= PageCount)
                    {
                        AddLog("进行第" + PageIndex + "页采集准备");
                        window.setTimeout("QuarryDataList()",10);
                    }
                }
		    }
	    }
    }
}

function ClearQuarryDataList()
{
    while(DataList.rows.length > 0)
    {
        DataList.removeChild(DataList.rows[0]);
    }
    DataPanelTemp = null;
  //  BlankFrame.location.reload(true);
  //  Log.value = "";
}

function GetQuarryDataList(datalist)
{
    if (QuarryState == 0)
    {
        return;
    }
    //ClearQuarryDataList();
//    //link[0] 文本 link[1] 参数
//    var datalist = GetParameters(DataPanelTemp,ParameterBegin,ParameterEnd);
//    var datalist = new Array();
//    var indexBegin = 0;
//    var indexEnd = 0;
//    var count = 0;
//    var flg = true;
//    while (indexBegin < DataPanelTemp.length)
//    {
//        indexBegin = DataPanelTemp.indexOf(ParameterBegin, indexBegin);
//        indexEnd = indexBegin + ParameterBeginLength;
//        indexEnd = DataPanelTemp.indexOf(ParameterEnd,indexEnd);
//        if ((indexBegin != -1) && (indexEnd != -1))
//        {
//            datalist[count] = DataPanelTemp.substring(indexBegin + ParameterBeginLength,indexEnd);
//            indexBegin = indexEnd + ParameterEndLength;
//            count++;
//        }
//        else
//        {
//            break;
//        }
//    }
//    var tdTagName = "td";
//    var trTagName = "tr";
//    var inputTagName = "input";
//    var rowId = "row";
//    var chkId = "chk";
    if (datalist.length != 0)
    {
//        for (var i = 0; i < datalist.length; i++)
//        {
//            var row = CreateElement(trTagName,rowId + i,null,null,null,null);
//            var td0 = CreateElement(tdTagName,null,null,null,null,null);
//            td0.innerText = i;
//            row.appendChild(td0);
//            
//            var td1 = CreateElement(tdTagName,null,null,null,null,null);
//            td1.innerText = datalist[i];
//            row.appendChild(td1);
//            
//            var td2 = CreateElement(tdTagName,null,null,null,null,null);
//            var chkbox = CreateElement(inputTagName,chkId + i,i,null,null,"checkbox");
//            td2.appendChild(chkbox);
//            row.appendChild(td2);
//            
//            DataList.appendChild(row);        
//        }
        AddQuarryRows(datalist);
    }
    else
    {
        alert("页数:【" + PageIndex + "】,未能采集到数据");
    }
}

function DeleteRowBySelected()
{
    var rowids = new Array();
    var chklist = DataList.getElementsByTagName("input");
    for(var i = 0; i < chklist.length; i++)
    {
        var obj = chklist[i];
        if (obj.id.substr(0,3) == "chk")
        {
            if (obj.checked)
            {
                rowids.push(obj.id.substr(3));
            }
        }
    }
    
    for (var i = 0; i < rowids.length; i++)
    {
        var row = document.getElementById("row" + rowids[i]);
        if (row != null)
        {
            DataList.removeChild(row);
        }
    }
}

function QuarryStart()
{  
    if (QuarryState == 0)
    {
        return;
    }
    if (DataList.rows.length > 0)
    {
  
        AddLog("开始采集记录");
        CurrentRowIndex = 0;
        Quarry(CurrentRowIndex);
    }
}

function Quarry(rowIndex)
{   
    if (QuarryState == 0)
    {
        return;
    } 
    AddLog("开始采集第[ " + rowIndex + " ]条记录");
    var row = DataList.rows[rowIndex];
    row.style.backgroundColor = "#E6E6F8";
    Ajax = new AjaxClass();
    var queryString =  row.cells[1].innerText;
    
    var quarryUrl = null;
    var quarryMethod = null;
    var mode = null;
    if (IsQuarryInnerPage == "1")
    {
        quarryUrl = InnerPageQuarryUrl;
        quarryMethod = InnerPageQuarryMethod;
        mode = InnerPageQuarryUrlMode;
    }
    else
    {
        quarryUrl = QuarryUrl;
        quarryMethod = QuarryMethod;
        mode = QuarryUrlMode;
    }
    if (mode == "0")
    {

⌨️ 快捷键说明

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