update20181214 – uGetHttpData.pas

function DecodePJItem(sText: string): TList<TDataItem>;var reg: TRegEx; mc: TMatchCollection; item: TMatch; dataItem: TDataItem;begin Result := TList<TDataItem>.Create; sText := reg.Replace(sText, \n, ‘‘); sText := reg.Replace(sText, <tr style="">.*?</tr>, ‘‘); // sText := reg.Replace(sText, <td width=".*?">, ‘‘); sText := reg.Replace(sText, <span class.*?">, ‘‘); sText := reg.Replace(sText, <td class=.*?>, ‘‘); sText := reg.Replace(sText, <p class.*?>, ‘‘); sText := reg.Replace(sText, <input .*?>, ‘‘); sText := reg.Replace(sText, <a.*?>, ‘‘); sText := reg.Replace(sText, </a>, ‘‘); sText := reg.Replace(sText, </span>, ‘‘); sText := reg.Replace(sText, </tr>, |); sText := reg.Replace(sText, <tr>, ‘‘); sText := reg.Replace(sText, </p>, ‘‘); sText := reg.Replace(sText, </td>, ,); sText := reg.Replace(sText, <span.*?>, ‘‘); reg := TRegEx.Create((.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),\|); mc := reg.Matches(sText); for item in mc do begin if item.Groups.Count = 9 then begin try if item.Groups[8].Value <> 我要买 then Continue; dataItem := TDataItem.Create; dataItem.PublishTime := item.Groups[1].Value; dataItem.Company := item.Groups[2].Value; dataItem.Money := StrToFloatDef(item.Groups[3].Value, 0); dataItem.OutTime := item.Groups[4].Value; dataItem.Deduction := StrToIntDef(item.Groups[5].Value, 0); dataItem.Defect := item.Groups[6].Value; dataItem.TimeLength := item.Groups[7].Value; dataItem.Text := item.Groups[8].Value; dataItem.LeftDay := GetLeftValue(dataItem.OutTime); if dataItem.LeftDay <= 0 then begin SendLog(TDataCollector.MainHandle, Format(%s, %s, 数据异常,跳过!!!,[dataItem.PublishTime, dataItem.Company])); dataItem.Free; Continue; end; dataItem.YearRate := dataItem.Deduction / 1000 * 360 / DataItem.LeftDay; dataItem.New := True; except Continue; end; Result.Add(dataItem); end; end;end;

 

相关文章