PerlRegEx = Yes; Output.Clear; States = 'IN,KY'; st = New(Stack); st.Split(States, ','); st.Reverse; df = New(File); df.Open(ScriptPath+'hudhomestore.txt'); df.Truncate; rx = New(RegEx); sk = New(Stack); Link = New(URL); unless st.Empty do begin CurState = st.Pop; PageURL = 'https://www.hudhomestore.com/Listing/PropertySearchResult.aspx?zipCode=&city=&county=&street=&sState='+CurState+'&fromPrice=0&toPrice=0&fcaseNumber=&bed=0&bath=0&buyerType=0&Status=0&sLanguage=ENGLISH&sPageSize=10000'; //while PageURL <> Nothing do begin Link.Get(PageURL); PageURL = Link.FixUp(WildGet(Link.Data, "href='([^']+)'[^>]*>next")); rx.Data = Link.Data; //Output(Link.Data); Terminate; rx.Mask = 'var\s+strLink\s*=\s*"([^"]+)"\s*\+\s*[^+]+\+\s*"([^"]+)"'; rx.Match; SubmitURLPrefix = rx.Value[1]; SubmitURLSufix = rx.Value[2]; rx.Mask = "'([^']+)';"">\s*[^<]+\s*"; //rx.Mask = "'([^']+)';"">\s*([^<]+)\s*.*?lblAddress""[^<]+
[^,]+,\s*([a-z]{2}),\s*(\d{5})"; rx.Reset; sk.Clear; while rx.Match do sk.Push(rx.Value[1]); sk.Reverse; unless sk.Empty do begin Link.Get(sk.Pop); //Output(Link.Data); Terminate; CaseNumber = Trim(WildGet(Link.Data, 'case\s*number:\s*<[^>]+>([^<]+)<')); CompanyName = Trim(WildGet(Link.Data, 'CompanyName">([^<]+)')); ContactName = Trim(WildGet(Link.Data, 'ContactName">([^<]+)')); PhoneNumber = Trim(WildGet(Link.Data, 'PhoneNumber">([^<]+)')); FaxNumber = Trim(WildGet(Link.Data, 'FaxNumber">([^<]+)')); Street = Trim(WildGet(Link.Data, 'ManagerAddress">([^<]+)')); City = Trim(WildGet(Link.Data, 'ManagerAddress">[^<]+<[^>]+>(.*?)\s+[a-z]{2}\s')); State = Trim(WildGet(Link.Data, 'ManagerAddress">[^<]+<[^>]+>.*?\s+([a-z]{2})\s')); Zip = Trim(WildGet(Link.Data, 'ManagerAddress">[^<]+<[^>]+>.*?\s+[a-z]{2}\s(\d{5})')); email = Trim(WildGet(Link.Data, 'Manageremail"\s+href="mailto:([^"]+)')); DataLine = CaseNumber+TAB+CurState+TAB+CompanyName+TAB+ContactName+TAB+Street+TAB+City+TAB+State+TAB+Zip+TAB+PhoneNumber+TAB+FaxNumber+TAB+email; df.Write(DataLine+CRLF); Output(DataLine); end; //end; end; df.Close;