Вверх ↑
Этот топик читают: Гость
Этот топик был перемещен из раздела "Помощь по среде"
Ответов: 253
Рейтинг: 0
#1: 2018-09-18 19:16:51 ЛС | профиль | цитата
Суть такова, есть список строк, он будет формироваться выгружая ссылки со страницы сайта.( но это не важно )
Также есть файл уже проверенный и выгруженных ссылок ранее "listurl.txt". Так вот, нужно каким-то образом сравнить два эти файла, найти строки которых не хватает в "listurl.txt" и показать их. Программа будет просто проверять определенную страницу сайта на появление новых ссылок. и как это правильно организовать пока не понимаю.
Вот что есть.

Add(MainForm,2953706,21,105)
{
Height=252
}
Add(SearchInFile,4024410,364,203)
{
FileName="listurl.txt"
Sensitive=1
Point(String)
link(onSearch,7359748:doData,[(408,216)(408,300)(373,300)(373,384)])
link(Text,10127013:Text,[(377,181)(412,181)])
}
Add(Button,8899167,231,301)
{
Left=15
Top=5
Width=75
Caption="Сортировать"
link(onClick,3411828:doEvent1,[])
}
Add(Timer,9912172,336,322)
{
Interval=200
Enable=1
link(onTimer,7262575:doNext,[])
}
Add(Hub,3411828,301,301)
{
link(onEvent1,7262575:doReset,[(347,307)(347,342)])
link(onEvent2,9912172:doTimer,[(325,314)(325,328)])
}
Add(Counter,7262575,385,322)
{
Min=-1
Max=10000
link(onNext,12280955:doCompare,[(422,328)(422,335)(448,335)(448,328)])
}
Add(If_else,12280955,455,322)
{
Type=1
link(onTrue,13812074:doRead,[])
link(onFalse,11720345:doTimer,[(494,335)(494,370)(270,370)(270,335)])
link(Op2,10463000:Count,[(468,242)(335,242)])
}
Add(ArrayRW,13812074,504,322)
{
link(onRead,10127013:doText,[(541,328)(541,335)(572,335)(572,233)(394,233)(394,132)])
link(Array,10463000:Array,[(510,242)(342,242)])
}
Add(Timer,11720345,280,329)
{
Interval=10
Enable=1
AutoStop=1
link(onTimer,9912172:doStop,[])
}
Add(RichEdit,10463000,322,123)
{
Left=15
Top=30
Width=365
Height=175
ParentFont=0
Strings=#7:Stroka1|7:Stroka2|7:Stroka3|7:Stroka4|7:Stroka5|7:Stroka6|7:Stroka7|7:Stroka8|7:Stroka9|8:Stroka10|8:Stroka11|8:Stroka12|8:Stroka13|8:Stroka14|8:Stroka15|8:Stroka16|8:Stroka17|8:Stroka18|8:Stroka19|8:Stroka20|8:Stroka21|8:Stroka22|8:Stroka23|8:Stroka24|8:Stroka25|8:Stroka26|8:Stroka27|8:Stroka28|8:Stroka29|8:Stroka30|
AddType=1
ScrollBars=3
Point(doDelete)
}
Add(Edit,10127013,406,126)
{
Left=95
Top=5
Width=285
Text=""
link(onChange,4024410:doSearch,[(450,132)(450,170)(352,170)(352,209)])
}
Add(DoData,7359748,385,378)
{
link(onEventData,10463000:doDelete,[(429,384)(429,274)(310,274)(310,164)])
link(Data,7262575:Count,[])
}
Add(StrList,12725171,581,56)
{
FileName="listurl.txt"
Strings=#7:Stroka1|7:Stroka2|7:Stroka3|7:Stroka5|7:Stroka6|7:Stroka8|8:Stroka10|8:Stroka11|8:Stroka12|8:Stroka13|8:Stroka14|8:Stroka16|8:Stroka17|8:Stroka18|8:Stroka19|8:Stroka21|8:Stroka22|8:Stroka23|8:Stroka24|8:Stroka25|8:Stroka27|8:Stroka28|8:Stroka29|
}
Add(hcVisualText,9353235,630,56)
{
Lines=#17:Это список строк |17:файла listurl.txt|
Width=102
Height=32
}

карма: 0

0
vip
#1.1контекстная реклама от партнеров
Главный модератор
Ответов: 2997
Рейтинг: 395
#2: 2018-09-18 19:46:35 ЛС | профиль | цитата
egorhay, или KanT39 Вас предупреждали, что надо соблюдать правила данного ресурса.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 655
Рейтинг: 18
#3: 2018-09-19 11:25:37 ЛС | профиль | цитата
Немного занудства...

На нормальных сайтах реализована защита от парсинга, она может включать в себя:

- блокировка по количеству запросов с 1 IP
- блокировка по куки, дополнительным заголовкам (чтобы отличать бота от браузера сайты снабжают заголовки HTTP спец данными которые браузер вернет при очередном запросе)
- вставка ссылок\данных через скрипт, т.е. ссылки\данные не располагаются в теле HTML, а появляются в DOM с помощью скрипта который их строит
- вставка ссылок\данных в виде svg\png элемента (при клике на данный элемент происходит GET запрос, на который сервер отвечает редиректом на другой ресурс)
- Обфусцификация, минификация
- динамические "мусорные" теги

Это как минимум на вскидку. Если требуется парсить сайт - надо это учитывать. Так же хочу отметить что некоторые сайты предоставляют API или RSS каналы через которые можно получать новые данные.

По теме: Искать ссылки через BlockFind, MultiBlockFind, хранить ссылки в StrList проверять через точку doGetString
карма: 0

0
Ответов: 253
Рейтинг: 0
#4: 2018-11-01 17:55:19 ЛС | профиль | цитата
Доброе время суток, вообще мне удалось написать проверку.Ну и схему прикладываю вдруг кому пригодиться. очень удобная и полезная штука.
Но вот не задача, крайне не хватает мозгов, чтобы сделать проверку на 2 сайта. Может кто разберется. Необходимо чтобы он записывал и проверял ссылки разных сайтов. Но при этом нужно чтобы он не перебивал проверку первого сайта. Он находит ссылку одного сайта, отправляет на проверку. И пока идет проверка второй и первый не должен мешать ее.

Add(ChildForm,14087018,154,217)
{
link(onEvent1,346984:doWork2,[])
}
BEGIN_SDK
Add(EditMulti,314236,21,21)
{
EventCount=1
WorkCount=1
Width=937
Height=774
link(doWork1,16498847:doEvent1,[(31,27)(31,244)])
}
Add(MainForm,3683928,49,49)
{
Width=338
Height=360
Caption="Поиск Объектов"
BorderStyle=5
ShiftLeft=565
ShiftTop=404
FormFastening="parent.123"
}
Add(HTTP_Get,7993544,168,63)
{
URL="https://www.avito.ru/smolensk/kvartiry/sdam/na_dlitelnyy_srok?s_trg=7"
link(onDownload,15249834:doConvert,[])
}
Add(Convertor,15249834,224,70)
{
Mode=11
link(onResult,8174998:doCharset,[])
}
Add(Charset,8174998,273,70)
{
Type=7
link(onCharset,1390282:doAdd,[])
}
Add(RichEdit,1390282,322,70)
{
Left=360
Top=10
Width=360
Height=90
ParentFont=0
Visible=1
ScrollBars=3
link(onChange,14280647:doTimer,[])
}
Add(BlockFind,16062642,406,70)
{
StartBlock="<a class="item-description-title-link""
EndBlock="title=""
link(onSearch,641195:doSearch,[])
link(Text,1390282:Text,[(412,65)(359,65)(359,120)(328,120)])
}
Add(Timer,14280647,364,70)
{
Interval=500
Enable=1
AutoStop=1
link(onTimer,16062642:doSearch,[])
}
Add(BlockFind,641195,448,70)
{
IncludeBlock=1
StartBlock="href=""
EndBlock="""
link(onSearch,16602185:doAdd,[(572,76)(572,48)])
}
Add(Hub,6122695,126,77)
{
OutCount=4
link(onEvent1,6282007:doWork,[(152,83)(152,76)(114,76)(114,69)])
link(onEvent2,1390282:doClear,[(231,90)(231,83)])
link(onEvent3,7993544:doDownload,[(154,97)(154,69)])
link(onEvent4,12925487:doEvent1,[(161,104)(161,125)])
}
Add(RichEdit,16602185,665,42)
{
Left=15
Top=10
Width=300
Height=190
ParentFont=0
FileName="liturl.txt"
AddType=1
ScrollBars=3
Point(doDelete)
Point(EndIdx)
link(onChange,16573358:doTimer,[(703,48)(703,55)])
}
Add(RichEdit,15881446,259,434)
{
Left=15
Top=235
Width=300
Height=50
ParentFont=0
FileName="liturl.txt"
AddType=1
ScrollBars=3
Point(doDelete)
Point(EndIdx)
link(onChange,16429322:doCompare,[])
link(Str,2344610:Var,[])
}
Add(ArrayFind,2852330,672,203)
{
link(onFind,7652567:In,[(716,209)(716,227)(667,227)(667,244)])
link(Array,8786520:Var,[])
link(Value,6269900:Item,[(692,191)(640,191)(640,247)(629,247)])
}
Add(Timer,10134406,112,392)
{
Interval=10000
Point(onStop)
link(onTimer,5129733:In,[(156,398)(156,416)(100,416)(100,433)])
link(onStop,12084462:doEvent2,[(156,405)(156,401)(65,401)(65,398)])
}
Add(Hub,7481302,189,441)
{
InCount=2
OutCount=3
link(onEvent1,15881446:doClear,[])
link(onEvent2,15881446:doAdd,[(224,454)(224,440)])
link(onEvent3,425657:doTimer,[(210,461)(210,475)])
}
Add(Timer,425657,217,469)
{
Enable=1
AutoStop=1
link(onTimer,360179:In,[(261,475)(261,493)(205,493)(205,510)])
}
Add(Counter,1394633,483,518)
{
Min=-2
Max=500
Default=-1
link(onNext,16332369:doCompare,[])
}
Add(If_else,16332369,525,518)
{
Type=1
link(onTrue,11384058:doRead,[])
link(Op2,13226807:Var3,[(538,495)])
}
Add(ArrayRW,11384058,574,518)
{
Index=String(0)
link(onRead,4472820:doText,[])
link(Array,15881446:Array,[(580,494)(279,494)])
}
Add(Hub,15887450,399,525)
{
link(onEvent2,4073267:doTimer,[(427,538)(427,524)])
}
Add(Switch,10717088,357,525)
{
Point(doOn)
Point(onOn)
Point(onOff)
Point(State)
link(onOn,15887450:doEvent1,[(391,538)(391,531)])
link(onOff,1394633:doReset,[(436,545)(436,538)])
}
Add(Edit,4472820,623,518)
{
Left=15
Top=295
Width=300
Text=""
Point(Position)
link(onChange,9561742:doString,[])
}
Add(Timer,4073267,434,518)
{
Interval=200
Enable=1
AutoStop=1
link(onTimer,1394633:doNext,[])
}
Add(RichEdit,10176140,259,658)
{
Left=380
Top=230
Width=365
Height=60
ParentFont=0
Visible=1
FileName="liturl.txt"
AddType=1
ScrollBars=3
Point(doDelete)
link(Str,4516616:getVar,[])
}
Add(Hub,13055485,161,672)
{
OutCount=3
link(onEvent1,10176140:doClear,[(195,678)(195,671)])
link(onEvent2,10176140:doLoad,[])
link(onEvent3,11227319:doTimer,[(193,692)(193,706)(163,706)(163,720)])
}
Add(Timer,11227319,175,714)
{
Enable=1
AutoStop=1
link(onTimer,14813679:doEvent1,[])
}
Add(Hub,14813679,217,714)
{
OutCount=3
link(onEvent1,10176140:doAdd,[(241,720)(241,664)])
link(onEvent2,10176140:doSave,[(248,727)(248,692)])
link(onEvent3,16185831:doTimer,[(249,734)(249,720)])
}
Add(Timer,16185831,266,714)
{
Enable=1
AutoStop=1
link(onTimer,11573362:doWork,[])
}
Add(Hub,9122426,749,49)
{
link(onEvent1,5114695:In,[(777,55)(777,48)])
link(onEvent2,11464639:In,[])
}
Add(Timer,16573358,707,49)
{
Interval=2000
Enable=1
AutoStop=1
link(onTimer,9122426:doEvent1,[])
}
Add(FormatStr,9561742,665,518)
{
DataCount=1
Mask="https://www.avito.ru%1"
Point(FString)
link(onFString,314236:onEvent1,[(911,524)(911,27)])
}
Add(Hub,16498847,42,238)
{
OutCount=5
link(onEvent1,7581633:doEvent1,[(74,244)(74,419)])
link(onEvent2,12084462:doEvent1,[(66,251)(66,391)])
link(onEvent3,7838903:doWork,[])
link(onEvent4,7481302:doEvent2,[(122,265)(122,454)])
link(onEvent5,344564:In,[])
}
Add(Hub,7581633,70,413)
{
InCount=2
link(onEvent1,10134406:doStop,[(98,419)(98,405)])
}
Add(Hub,12084462,77,385)
{
InCount=2
OutCount=1
link(onEvent1,10134406:doTimer,[(101,391)(101,398)])
}
Add(ArrayEnum,6269900,623,203)
{
link(onItem,2852330:doFind,[])
link(Array,10047696:Var,[])
}
Add(StrList,11142569,224,112)
{
FileName="liturl.txt"
}
Add(Hub,12925487,182,119)
{
link(onEvent1,11142569:doClear,[])
link(onEvent2,11142569:doLoad,[(210,132)(210,146)])
}
Add(LineBreak,10232331,224,161)
{
Caption="Lode"
Type=1
link(Data,11142569:Array,[(230,155)(244,155)])
Primary=[10047696,399,21]
}
Add(LineBreak,10242880,665,98)
{
Caption="New"
Type=1
link(Data,16602185:Array,[(671,87)])
Primary=[8786520,7,84]
}
Add(LineBreak,12955703,665,112)
{
Caption="New"
Type=1
link(Data,16602185:Text,[])
Primary=[2344610,-406,308]
}
Add(LineBreak,8950650,665,28)
{
Caption="Del"
link(Out,16602185:doDelete,[(707,34)(707,60)(653,60)(653,83)])
Primary=[7652567,7,210]
}
Add(LineBreak,4851689,623,238)
{
Caption="filtr"
link(Out,6269900:doEnum,[(665,244)(665,223)(611,223)(611,209)])
Primary=[11464639,161,-182]
}
Add(LineBreak,9756869,21,420)
{
Caption="Resset"
link(Out,7581633:doEvent2,[(61,426)(61,426)])
Primary=[5114695,763,-378]
}
Add(LineBreak,9321149,161,427)
{
Caption="Start"
link(Out,7481302:doEvent1,[(209,433)(209,440)(177,440)(177,447)])
Primary=[5129733,-49,0]
}
Add(LineBreak,11297325,70,98)
{
Caption="Start"
link(Out,6122695:doEvent1,[(116,104)(116,83)])
Primary=[360179,147,406]
}
Add(LineBreakEx,7838903,70,252)
{
Caption="cls"
}
Add(LineBreakEx,6282007,126,63)
{
Caption="cls"
}
Add(LineBreakEx,1464696,588,49)
{
Caption="cls"
Type=1
link(OnEvent,16602185:doClear,[])
}
Add(LineBreak,3428162,98,672)
{
Caption="ADD"
link(Out,13055485:doEvent1,[])
Primary=[344564,-28,-406]
}
Add(LineBreakEx,11573362,308,714)
{
Caption="Can"
}
Add(LineBreakEx,7827049,357,511)
{
Caption="Can"
Type=1
link(OnEvent,10717088:doReset,[(408,517)(408,527)(345,527)(345,538)])
}
Add(LineBreakEx,13251950,357,560)
{
Caption="Ban"
Type=1
link(OnEvent,10717088:doOn,[(408,566)(408,556)(345,556)(345,545)])
}
Add(LineBreakEx,3794573,371,434)
{
Caption="Ban"
}
Add(GetDataEx,13226807,294,490)
{
Angle=3
link(Data,15881446:Count,[(272,495)])
}
Add(If_else,16429322,322,434)
{
Type=2
Op2=String(1)
link(onTrue,3794573:doWork,[])
link(Op1,13226807:Var1,[(328,429)(300,429)])
}
Add(LineBreakEx,14381628,623,560)
{
Caption="LINK"
Type=3
link(_Data,4472820:Text,[])
}
Add(LineBreakEx,4516616,259,637)
{
Caption="LINK"
Type=2
}
Add(PointHint,15240954,273,126)
{
Info=#9:Загружаем|11:проверенный|6:список|
Width=183
Height=39
}
Add(PointHint,12188279,280,14)
{
Info=#15:Парсим страницу|
Width=183
Height=39
}
Add(PointHint,13515452,721,203)
{
Info=#21:Сортируем проверенные|
Width=183
Height=39
}
Add(PointHint,13274683,161,378)
{
Info=#33:Получаем результат форматирования|
Width=211
Height=39
}
Add(PointHint,2497131,385,469)
{
Info=#41:Получаем первую ссылку и закрываем доступ|
Width=267
Height=39
}
Add(PointHint,12205275,322,658)
{
Info=#42:Добавляем ссылку в файл и открываем доступ|
Width=267
Height=39
}
Add(PointHint,717984,-70,189)
{
Info=#41:Сбрасываем блок и добавляем ссылку в файл|
Width=260
Height=39
}
Add(PointHint,5444959,-49,21)
{
Info=#5:Ответ|
}
Add(PointHint,8125069,966,21)
{
Info=#18:Запрос на проверку|
Width=106
}
END_SDK
Add(Edit,6917045,252,217)
{
Left=5
Top=10
Width=360
Text=""
}
Add(Button,13755859,70,217)
{
Left=5
Top=35
Width=360
Caption="Проверил"
link(onClick,9276943:doEvent1,[])
}
Add(Hub,9276943,112,217)
{
link(onEvent1,6917045:doText2,[(172,223)(172,230)])
link(onEvent2,14087018:doWork1,[(147,230)(147,223)])
}
Add(ChildForm,5695655,154,294)
{
link(onEvent1,346984:doWork3,[(221,300)])
}
BEGIN_SDK
Add(EditMulti,15870637,21,21)
{
EventCount=1
WorkCount=1
Width=937
Height=774
link(doWork1,14565886:doEvent1,[(31,27)(31,244)])
}
Add(MainForm,2025505,49,49)
{
Width=338
Height=360
Caption="Поиск Объектов"
BorderStyle=5
ShiftLeft=565
ShiftTop=404
FormFastening="parent.123"
}
Add(HTTP_Get,3141333,168,63)
{
URL="https://www.avito.ru/smolensk/kvartiry/sdam/na_dlitelnyy_srok?s_trg=7"
link(onDownload,2326942:doConvert,[])
}
Add(Convertor,2326942,224,70)
{
Mode=11
link(onResult,8693214:doCharset,[])
}
Add(Charset,8693214,273,70)
{
Type=7
link(onCharset,6949574:doAdd,[])
}
Add(RichEdit,6949574,322,70)
{
Left=360
Top=10
Width=360
Height=90
ParentFont=0
Visible=1
ScrollBars=3
link(onChange,8624688:doTimer,[])
}
Add(BlockFind,9699714,406,70)
{
StartBlock="<a class="item-description-title-link""
EndBlock="title=""
link(onSearch,8685739:doSearch,[])
link(Text,6949574:Text,[(412,65)(359,65)(359,120)(328,120)])
}
Add(Timer,8624688,364,70)
{
Interval=500
Enable=1
AutoStop=1
link(onTimer,9699714:doSearch,[])
}
Add(BlockFind,8685739,448,70)
{
IncludeBlock=1
StartBlock="href=""
EndBlock="""
link(onSearch,1553497:doAdd,[(572,76)(572,48)])
}
Add(Hub,1982581,126,77)
{
OutCount=4
link(onEvent1,14867195:doWork,[(152,83)(152,76)(114,76)(114,69)])
link(onEvent2,6949574:doClear,[(231,90)(231,83)])
link(onEvent3,3141333:doDownload,[(154,97)(154,69)])
link(onEvent4,14075437:doEvent1,[(161,104)(161,125)])
}
Add(RichEdit,1553497,665,42)
{
Left=15
Top=10
Width=300
Height=190
ParentFont=0
FileName="liturl.txt"
AddType=1
ScrollBars=3
Point(doDelete)
Point(EndIdx)
link(onChange,15652587:doTimer,[(703,48)(703,55)])
}
Add(RichEdit,6363281,259,434)
{
Left=15
Top=235
Width=300
Height=50
ParentFont=0
FileName="liturl.txt"
AddType=1
ScrollBars=3
Point(doDelete)
Point(EndIdx)
link(onChange,2588972:doCompare,[])
link(Str,18579:Var,[])
}
Add(ArrayFind,15188351,672,203)
{
link(onFind,1822866:In,[(716,209)(716,227)(667,227)(667,244)])
link(Array,12620026:Var,[])
link(Value,4675298:Item,[(692,191)(640,191)(640,247)(629,247)])
}
Add(Timer,5824839,112,392)
{
Interval=10000
Point(onStop)
link(onTimer,8269617:In,[(156,398)(156,416)(100,416)(100,433)])
link(onStop,10920406:doEvent2,[(156,405)(156,401)(65,401)(65,398)])
}
Add(Hub,10235876,189,441)
{
InCount=2
OutCount=3
link(onEvent1,6363281:doClear,[])
link(onEvent2,6363281:doAdd,[(224,454)(224,440)])
link(onEvent3,6944636:doTimer,[(210,461)(210,475)])
}
Add(Timer,6944636,217,469)
{
Enable=1
AutoStop=1
link(onTimer,16224112:In,[(261,475)(261,493)(205,493)(205,510)])
}
Add(Counter,4007429,483,518)
{
Min=-2
Max=500
Default=-1
link(onNext,7391641:doCompare,[])
}
Add(If_else,7391641,525,518)
{
Type=1
link(onTrue,5452273:doRead,[])
link(Op2,9721674:Var3,[(538,495)])
}
Add(ArrayRW,5452273,574,518)
{
Index=String(0)
link(onRead,14464520:doText,[])
link(Array,6363281:Array,[(580,494)(279,494)])
}
Add(Hub,13900781,399,525)
{
link(onEvent2,11458956:doTimer,[(427,538)(427,524)])
}
Add(Switch,8658732,357,525)
{
Point(doOn)
Point(onOn)
Point(onOff)
Point(State)
link(onOn,13900781:doEvent1,[(391,538)(391,531)])
link(onOff,4007429:doReset,[(436,545)(436,538)])
}
Add(Edit,14464520,623,518)
{
Left=15
Top=295
Width=300
Text=""
Point(Position)
link(onChange,13763544:doString,[])
}
Add(Timer,11458956,434,518)
{
Interval=200
Enable=1
AutoStop=1
link(onTimer,4007429:doNext,[])
}
Add(RichEdit,3952929,259,658)
{
Left=380
Top=230
Width=365
Height=60
ParentFont=0
Visible=1
FileName="liturl.txt"
AddType=1
ScrollBars=3
Point(doDelete)
link(Str,10606315:getVar,[])
}
Add(Hub,7836957,161,672)
{
OutCount=3
link(onEvent1,3952929:doClear,[(195,678)(195,671)])
link(onEvent2,3952929:doLoad,[])
link(onEvent3,5889903:doTimer,[(193,692)(193,706)(163,706)(163,720)])
}
Add(Timer,5889903,175,714)
{
Enable=1
AutoStop=1
link(onTimer,9614079:doEvent1,[])
}
Add(Hub,9614079,217,714)
{
OutCount=3
link(onEvent1,3952929:doAdd,[(241,720)(241,664)])
link(onEvent2,3952929:doSave,[(248,727)(248,692)])
link(onEvent3,13337746:doTimer,[(249,734)(249,720)])
}
Add(Timer,13337746,266,714)
{
Enable=1
AutoStop=1
link(onTimer,11820467:doWork,[])
}
Add(Hub,3676998,749,49)
{
link(onEvent1,10446939:In,[(777,55)(777,48)])
link(onEvent2,1372920:In,[])
}
Add(Timer,15652587,707,49)
{
Interval=2000
Enable=1
AutoStop=1
link(onTimer,3676998:doEvent1,[])
}
Add(FormatStr,13763544,665,518)
{
DataCount=1
Mask="https://www.avito.ru%1"
Point(FString)
link(onFString,15870637:onEvent1,[(911,524)(911,27)])
}
Add(Hub,14565886,42,238)
{
OutCount=5
link(onEvent1,8477778:doEvent1,[(74,244)(74,419)])
link(onEvent2,10920406:doEvent1,[(66,251)(66,391)])
link(onEvent3,15004991:doWork,[])
link(onEvent4,10235876:doEvent2,[(122,265)(122,454)])
link(onEvent5,1356351:In,[])
}
Add(Hub,8477778,70,413)
{
InCount=2
link(onEvent1,5824839:doStop,[(98,419)(98,405)])
}
Add(Hub,10920406,77,385)
{
InCount=2
OutCount=1
link(onEvent1,5824839:doTimer,[(101,391)(101,398)])
}
Add(ArrayEnum,4675298,623,203)
{
link(onItem,15188351:doFind,[])
link(Array,10438901:Var,[])
}
Add(StrList,11169633,224,112)
{
FileName="liturl.txt"
}
Add(Hub,14075437,182,119)
{
link(onEvent1,11169633:doClear,[])
link(onEvent2,11169633:doLoad,[(210,132)(210,146)])
}
Add(LineBreak,1132585,224,161)
{
Caption="Lode"
Type=1
link(Data,11169633:Array,[(230,155)(244,155)])
Primary=[10438901,399,21]
}
Add(LineBreak,5076142,665,98)
{
Caption="New"
Type=1
link(Data,1553497:Array,[(671,87)])
Primary=[12620026,7,84]
}
Add(LineBreak,615489,665,112)
{
Caption="New"
Type=1
link(Data,1553497:Text,[])
Primary=[18579,-406,308]
}
Add(LineBreak,5654757,665,28)
{
Caption="Del"
link(Out,1553497:doDelete,[(707,34)(707,60)(653,60)(653,83)])
Primary=[1822866,7,210]
}
Add(LineBreak,10070183,623,238)
{
Caption="filtr"
link(Out,4675298:doEnum,[(665,244)(665,223)(611,223)(611,209)])
Primary=[1372920,161,-182]
}
Add(LineBreak,9816344,21,420)
{
Caption="Resset"
link(Out,8477778:doEvent2,[(61,426)(61,426)])
Primary=[10446939,763,-378]
}
Add(LineBreak,9883229,161,427)
{
Caption="Start"
link(Out,10235876:doEvent1,[(209,433)(209,440)(177,440)(177,447)])
Primary=[8269617,-49,0]
}
Add(LineBreak,13302145,70,98)
{
Caption="Start"
link(Out,1982581:doEvent1,[(116,104)(116,83)])
Primary=[16224112,147,406]
}
Add(LineBreakEx,15004991,70,252)
{
Caption="cls"
}
Add(LineBreakEx,14867195,126,63)
{
Caption="cls"
}
Add(LineBreakEx,3912495,588,49)
{
Caption="cls"
Type=1
link(OnEvent,1553497:doClear,[])
}
Add(LineBreak,4108956,98,672)
{
Caption="ADD"
link(Out,7836957:doEvent1,[])
Primary=[1356351,-28,-406]
}
Add(LineBreakEx,11820467,308,714)
{
Caption="Can"
}
Add(LineBreakEx,8530251,357,511)
{
Caption="Can"
Type=1
link(OnEvent,8658732:doReset,[(408,517)(408,527)(345,527)(345,538)])
}
Add(LineBreakEx,8892134,357,560)
{
Caption="Ban"
Type=1
link(OnEvent,8658732:doOn,[(408,566)(408,556)(345,556)(345,545)])
}
Add(LineBreakEx,13014305,371,434)
{
Caption="Ban"
}
Add(GetDataEx,9721674,294,490)
{
Angle=3
link(Data,6363281:Count,[(272,495)])
}
Add(If_else,2588972,322,434)
{
Type=2
Op2=String(1)
link(onTrue,13014305:doWork,[])
link(Op1,9721674:Var1,[(328,429)(300,429)])
}
Add(LineBreakEx,7699960,623,560)
{
Caption="LINK"
Type=3
link(_Data,14464520:Text,[])
}
Add(LineBreakEx,10606315,259,637)
{
Caption="LINK"
Type=2
}
Add(PointHint,8220783,273,126)
{
Info=#9:Загружаем|11:проверенный|6:список|
Width=183
Height=39
}
Add(PointHint,11653075,280,14)
{
Info=#15:Парсим страницу|
Width=183
Height=39
}
Add(PointHint,5561327,721,203)
{
Info=#21:Сортируем проверенные|
Width=183
Height=39
}
Add(PointHint,300075,161,378)
{
Info=#33:Получаем результат форматирования|
Width=211
Height=39
}
Add(PointHint,6186974,385,469)
{
Info=#41:Получаем первую ссылку и закрываем доступ|
Width=267
Height=39
}
Add(PointHint,245486,322,658)
{
Info=#42:Добавляем ссылку в файл и открываем доступ|
Width=267
Height=39
}
Add(PointHint,7325989,-70,189)
{
Info=#41:Сбрасываем блок и добавляем ссылку в файл|
Width=260
Height=39
}
Add(PointHint,7356076,-49,21)
{
Info=#5:Ответ|
}
Add(PointHint,13346451,966,21)
{
Info=#18:Запрос на проверку|
Width=106
}
END_SDK
Add(HubEx,346984,217,217)
{
link(onEvent,6917045:doText,[])
}
Add(VisualStrings,1566264,154,182)
{
Lines=#6:Сайт 1|
Width=39
}
Add(VisualStrings,2976122,154,266)
{
Lines=#6:Сайт 2|
Width=39
}

карма: 0

0
Ответов: 16884
Рейтинг: 1239
#5: 2018-11-02 10:37:36 ЛС | профиль | цитата
Если без обид, то такого бардака (в алгоритме) давно не видел.
Gunnman писал(а):
Искать ссылки через BlockFind, MultiBlockFind, хранить ссылки в StrList и проверять через точку doGetString
Ты это читал?

Редактировалось 1 раз(а), последний 2018-11-02 10:38:59
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 253
Рейтинг: 0
#6: 2018-11-02 10:48:49 ЛС | профиль | цитата
Я не обижаюсь, я только учусь, что вы подразумеваете под
Tad писал(а):
бардака
, покажите пожалуйста как правильно. и как сделали бы вы.

--- Добавлено в 2018-11-02 10:49:49

Gunnman писал(а):
Искать ссылки через BlockFind, MultiBlockFind, хранить ссылки в StrList проверять через точку doGetString


Просто не понимаю как мне тогда получить ссылки которые он не смог сравнить с StrList

Редактировалось 1 раз(а), последний 2018-11-02 10:49:49
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#7: 2018-11-02 18:25:03 ЛС | профиль | цитата
egorhay писал(а):
есть файл уже проверенный и выгруженных ссылок ранее "listurl.txt"
Что значит "уже проверенный" ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 253
Рейтинг: 0
#8: 2018-11-03 09:54:03 ЛС | профиль | цитата
Ну я использую listurl.txt для хранения уже проверенных ссылок. Каждую проверенную ссылку он сохраняет в этот файл. Ну а потом по этому файлу, сравнивает новые "спарсенные" ссылки сравнивая их с ссылками из listurl.txt . Методом перебора удаляет похожие из списка "спарсенных" ссылок. И после проверки выдает одну ссылку на проверку, после проверки круг замыкается.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#9: 2018-11-03 11:01:31 ЛС | профиль | цитата
egorhay писал(а):
Ну я использую listurl.txt для хранения уже проверенных ссылок.
Проверенных на что ?
На повтор в listurl.txt ?
На работоспособность ссылки ?
На повтор в listurl.txt

Редактировалось 1 раз(а), последний 2018-11-03 22:59:43
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 253
Рейтинг: 0
#10: 2018-11-06 16:32:50 ЛС | профиль | цитата
Суть такова, мне необходимо находить новые объекты(ссылки) и проверять их на наличие в своей базе, добавлять или редактировать. И так каждый новый объект. Я написал небольшой парсер дабы автоматизировать рутину. И вот мне необходимо чтобы Программа находила новые ссылки(объекты) и передавала их парсеру. Парсер сверля и проверял объект.
карма: 0

0
Ответов: 4612
Рейтинг: 746
#11: 2018-11-06 16:39:55 ЛС | профиль | цитата
Tad писал(а):
Проверенных на что ?

Tad:
1) скачать сайт
2) вытянуть с него все ссылки
3) проверить каждую ссылку есть ли она в listurl.txt
4) если нет - добавить туда
5) если есть такая же или похожая - удалить её из listurl.txt
6) повторить с п.1
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#12: 2018-11-06 18:20:57 ЛС | профиль | цитата
Netspirit писал(а):
5) если есть такая же или похожая - удалить её из listurl.txt
Они все похожи.
egorhay писал(а):
проверять их на наличие в своей базе, добавлять или редактировать.
"редактировать" - это как ?
Add(MainForm,12048521,84,140)
{
Left=100
Top=300
Width=382
Height=381
Caption="Проверка новых ссылок."
BorderStyle=1
Point(onClose)
Point(Handle)
link(onCreate,1717272:doEvent1,[])
link(onClose,14794601:doSave,[(131,167)(131,298)(548,298)(548,251)])
}
Add(HTTP_Get,7234570,315,245)
{
URL="https://www.avito.ru/smolensk/kvartiry/sdam/na_dlitelnyy_srok?s_trg=7"
link(onDownload,13964607:doConvert,[])
}
Add(Hub,11714152,182,224)
{
OutCount=6
link(onEvent1,8738868:In,[])
link(onEvent2,1515969:In,[])
link(onEvent4,1325851:doWork2,[])
link(onEvent5,1719398:doWork2,[])
link(onEvent6,10241656:doPopup,[(208,265)(208,275)(79,275)(79,286)])
}
Add(BlockFind,16062642,399,252)
{
StartBlock="<a class="item-description-title-link""
EndBlock="title=""
link(onSearch,641195:doSearch,[])
}
Add(BlockFind,641195,441,252)
{
IncludeBlock=1
StartBlock="href=""
EndBlock="""
link(onSearch,8953954:doValue,[])
}
Add(StreamConvertor,13964607,357,252)
{
Mode=6
link(onResult,16062642:doSearch,[])
}
Add(ListBox,10822852,714,224)
{
Left=5
Top=30
Width=365
Height=290
DataType=1
Point(EndIdx)
link(onClick,8673132:doEvent1,[])
link(Str,3345134:Var3,[(720,189)])
}
Add(StrList,14794601,553,210)
{
FileName="listurl.txt"
Point(doGetIndex)
Point(onGetIndex)
Point(doSort)
link(Str,3345134:Var2,[])
link(onGetIndex,3799826:doCompare,[])
}
Add(Memory,8953954,497,252)
{
link(onData,14794601:doGetIndex,[])
}
Add(If_else,3799826,595,217)
{
Op1=Integer(-1)
link(onTrue,12140815:doEvent1,[])
}
Add(Hub,12140815,637,217)
{
OutCount=3
link(onEvent1,14794601:doAdd,[(665,223)(665,202)(541,202)(541,216)])
link(onEvent2,10822852:doAdd,[])
link(onEvent3,5247962:doWork1,[(663,237)])
}
Add(Timer,8013674,266,252)
{
Interval=60000
Enable=1
link(onTimer,1325851:doWork3,[(305,258)])
}
Add(HubEx,1325851,301,245)
{
link(onEvent,7234570:doDownload,[])
}
Add(Label,16670307,756,301)
{
Left=10
Top=5
Width=360
Height=25
Font=[Courier New,11,1,0,204]
Caption=""
AutoSize=1
Alignment=1
}
Add(LineBreak,12407149,665,231)
{
Caption="cls"
Color=16776960
link(Out,10822852:doClear,[])
Primary=[8738868,-413,-7]
}
Add(FormatStr,16056429,714,301)
{
Mask="На %1 новых ссылок %2"
link(onFString,16670307:doText,[])
link(Str1,3121094:FormatTime,[(720,293)(678,293)])
link(Str2,10822852:Count,[])
}
Add(Time,3121094,672,252)
{
Format="D/M/Y h:m:s"
}
Add(WinExec,870618,868,231)
{
Param="\13"
}
Add(HubEx,5247962,659,301)
{
link(onEvent,16056429:doString,[])
}
Add(LineBreak,11934386,623,301)
{
Color=65280
link(Out,5247962:doWork2,[])
Primary=[1515969,-406,-70]
}
Add(Button,5005204,168,315)
{
Left=5
Top=330
Width=170
Font=[MS Sans Serif,8,1,0,1]
Caption="Продолжить"
Point(doEnabled)
link(onClick,1719398:doWork3,[(242,321)])
}
Add(WinTools,10241656,84,273)
{
link(Handle,12048521:Handle,[])
}
Add(FormatStr,7906942,819,238)
{
DataCount=1
Mask="https://www.avito.ru%1"
link(onFString,870618:doShellExec,[])
}
Add(FileTools,3484865,196,133)
{
FileName="listurl.txt"
link(onEnd,3362641:doCompare,[])
}
Add(If_else,3362641,245,133)
{
Op1=Integer(1)
link(onTrue,14794601:doLoad,[(314,139)(314,244)])
}
Add(Hub,1717272,133,154)
{
link(onEvent1,3484865:doFileExists,[])
link(onEvent2,11714152:doEvent1,[(165,167)(165,230)])
}
Add(Hub,8673132,770,231)
{
link(onEvent1,8013674:doStop,[(807,237)(807,343)(253,343)(253,265)])
link(onEvent2,7906942:doString,[])
}
Add(HubEx,1719398,238,252)
{
link(onEvent,8013674:doTimer,[])
}
Add(GetDataEx,3345134,553,184)
{
Angle=3
link(Data,8953954:Value,[(535,189)(535,296)(503,296)])
}

Проверка на повтор в listurl.txt - автоматически.
На работоспособность ссылки - клик на ссылке в ListBox.

Для Netspirit

Подключился к их БД.
Клиентка Вера П. пользуется их услугами с 2012 года.
За это время публиковала объявления о сдаче квартиры 5 раз.
Разница только в датах и в № регистрации объявления (который отображается в ссылке).
Последнее - позавчера. Предыдущее - в 2016.
Это как "есть такая же или похожая" ?

Редактировалось 7 раз(а), последний 2018-11-06 22:45:46
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 4612
Рейтинг: 746
#13: 2018-11-07 11:29:55 ЛС | профиль | цитата
Ну, что такое "похожая" - это пусть egorhay решает.
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#14: 2018-11-07 14:44:26 ЛС | профиль | цитата
Netspirit,
Tad писал(а):
Проверенных на что ?

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 253
Рейтинг: 0
#15: 2018-11-23 10:34:56 ЛС | профиль | цитата
Простите, что так запутал вас всех(
Суть ловли новых ссылок заключается в том чтобы парсить новые объявления.
Алгоритм программы.
1)Парсим страницу со списком всех объявлений, получаем список ссылок.
2)Переберем эти ссылки и сравниваем их с теме которые уже были проверенны(проверенные ссылки я записываю в текстовый документ)
3)Как только программа отфильтровала список и получила все не проверенные объявления(ссылки), выдает одну из не проверенных ссылок в поток.
4)Парсер получает не проверенную ссылку, загружает страницу, прасет ее.
5)Выдает мне всю нужною информацию по по объекту. (Адрес, номер телефона, стоимость и т.д)
6)Вместе с появлением информации о объекте, программа отправляет Номер телефона на проверку.(методом post)
7)Проверяет есть ли такой объект у меня в базе, если есть выдает мне его для сравнения.
8)Я либо заменяю полученные данные либо добавляю новые.
9)После моего решения и выполнения задачи ссылка которую мы получили в самом начале добавляется в тот самый текстовый документ.
10)Цикл повторяется

При этом при все мне необходимо, чтобы ссылки парселись постоянно. То есть проверялись на появление новых.
В принципе я сделал все что хотел. Даже подключил к этой схеме сервер и передаю данные на андройд)) Но это другая история.
Но осталась одна проблема. Парсить нужно не один сайт. Я вроде бы сделал так, чтобы ссылки вылетали по очереди и не мешали друг другу. ноо. Часто они сбиваются, без моего ведома добавляют ссылки в Текстов проверенных (хотя таковыми не являются. Или вовсе выдают пустую ссылку.
Пожалуйста, помогите у комплектовать это дела так, чтобы оно работало исправно. не сбивалось. Это очень важно для меня. Можете плеваться и ругаться на то как собрана схема, говорить что так не делают. Но я только учусь и делаю не так как правильно а так как работает) Простите пожалуйста.


Add(MainForm,2953706,21,105)
{
Width=543
Height=193
}
Add(ChildPanel,3461907,406,63)
{
}
BEGIN_SDK
Add(EditMulti,8641351,21,21)
{
WorkCount=3
Width=272
Height=207
link(doWork1,9114120:doOperation,[(87,27)(87,76)])
link(doWork2,4028507:doText,[(109,34)(109,118)])
link(doWork3,279056:doOperation,[(87,41)(87,160)])
}
Add(Panel,1230144,35,147)
{
Left=5
Top=15
Width=515
Height=75
}
Add(Label,14357300,245,70)
{
Left=15
Top=5
Width=89
Height=17
Caption="Объектов авито:"
}
Add(Label,6440336,245,112)
{
Left=15
Top=25
Width=128
Height=17
Caption="Объектов Моя реклама:"
}
Add(Edit,3821283,196,70)
{
Left=105
Top=5
Width=24
Height=14
Color=-16777201
Ctl3D=1
Text="0"
ReadOnly=0
}
Add(Edit,4028507,196,112)
{
Left=145
Top=25
Width=24
Height=15
Color=-16777201
Ctl3D=1
Text="0"
ReadOnly=0
}
Add(Math,9114120,154,70)
{
OpType=1
Op2=2
link(onResult,3821283:doText,[])
}
Add(Label,16665530,244,154)
{
Left=15
Top=50
Width=81
Height=17
Caption="Объектов Юла:"
}
Add(Edit,13307872,196,154)
{
Left=95
Top=50
Width=24
Height=15
Color=-16777201
Ctl3D=1
Text="0"
ReadOnly=0
}
Add(Math,279056,154,154)
{
OpType=1
Op2=1
link(onResult,13307872:doText,[])
}
END_SDK
Add(hcVisualText,1987573,385,28)
{
Lines=#15:Сколько обектов|
Width=74
Height=32
}
Add(LineBreakEx,10331581,343,77)
{
Caption="MyR"
Type=1
link(OnEvent,3461907:doWork2,[(395,83)(395,76)])
}
Add(LineBreakEx,2763343,343,63)
{
Caption="Avit"
Type=1
link(OnEvent,3461907:doWork1,[])
}
Add(LineBreakEx,7479930,343,91)
{
Caption="Yla"
Type=1
link(OnEvent,3461907:doWork3,[(392,97)(392,83)])
}
Add(Edit,12532052,154,252)
{
Left=5
Top=90
Width=515
Text=""
link(onChange,1665028:doEvent1,[])
}
Add(LineBreakEx,10599319,154,294)
{
Caption="LinkURL"
Type=3
link(_Data,12532052:Text,[])
}
Add(ChildForm,1082110,161,322)
{
link(onEvent1,12532052:doText,[(205,328)(205,293)(142,293)(142,258)])
link(onEvent2,6364393:In,[])
link(onEvent3,4182957:In,[(198,342)(198,349)])
link(onEvent4,2983311:In,[(198,349)(198,363)])
link(onEvent5,10793275:doWork,[(219,356)(219,335)])
link(onEvent6,12461711:doWork,[(219,363)(219,349)])
link(onEvent7,14051466:doWork,[(219,370)(219,363)])
}
BEGIN_SDK
Add(EditMulti,1044762,21,21)
{
EventCount=7
WorkCount=2
Width=713
Height=536
link(doWork1,1784384:doEvent1,[(241,27)(241,55)])
link(doWork2,14712642:doVisible,[(35,34)(35,139)])
}
Add(MainForm,14712642,49,105)
{
Width=393
Height=92
Visible=1
Caption="Добавить свою ссылку"
BorderStyle=5
Point(doVisible)
}
Add(ChildForm,6645302,189,196)
{
link(onEvent1,9858768:doWork,[])
link(onEvent2,11754498:In,[(226,209)(226,216)])
}
BEGIN_SDK
Add(EditMulti,388524,21,21)
{
EventCount=2
WorkCount=4
Width=937
Height=774
link(doWork1,3938956:doEvent1,[(31,27)(31,244)])
link(doWork2,8166722:doWork,[])
link(doWork3,7331124:doEvent1,[(39,41)(39,48)])
link(doWork4,9705767:In,[(28,48)(28,76)])
}
Add(MainForm,12766714,273,224)
{
Width=338
Height=360
Visible=1
Caption="Поиск Объектов Авито"
BorderStyle=5
ShiftLeft=565
ShiftTop=404
FormFastening="parent.123"
}
Add(Charset,2188094,308,70)
{
Type=7
link(onCharset,14194307:doAdd,[])
}
Add(RichEdit,14194307,357,70)
{
Left=360
Top=10
Width=360
Height=90
ParentFont=0
Visible=1
ScrollBars=3
link(onChange,3808079:doTimer,[])
}
Add(BlockFind,6977679,448,70)
{
StartBlock="<a class="item-description-title-link""
EndBlock="title=""
link(onSearch,5993379:doSearch,[])
link(Text,14194307:Text,[(454,65)(394,65)(394,120)(363,120)])
}
Add(Timer,3808079,399,70)
{
Interval=500
Enable=1
AutoStop=1
link(onTimer,2072458:doEvent1,[])
}
Add(BlockFind,5993379,490,70)
{
IncludeBlock=1
StartBlock="href=""
EndBlock="""
link(onSearch,15135562:doAdd,[(572,76)(572,48)])
}
Add(Hub,16142891,126,77)
{
OutCount=4
link(onEvent1,2941615:doWork,[(152,83)(152,76)(114,76)(114,69)])
link(onEvent2,14194307:doClear,[(231,90)(231,83)])
link(onEvent3,5618421:doLoadString,[(154,97)(154,69)])
link(onEvent4,468080:doEvent1,[(161,104)(161,125)])
}
Add(RichEdit,15135562,665,42)
{
Left=15
Top=10
Width=300
Height=190
ParentFont=0
FileName="liturl.txt"
AddType=1
ScrollBars=3
Point(doDelete)
Point(EndIdx)
link(onChange,6763860:doEvent1,[])
}
Add(RichEdit,2708262,259,434)
{
Left=15
Top=235
Width=300
Height=50
ParentFont=0
FileName="liturl.txt"
AddType=1
ScrollBars=3
Point(doDelete)
Point(EndIdx)
link(onChange,13994725:doTimer,[])
link(Str,1546448:Var,[])
}
Add(ArrayFind,7103943,672,203)
{
link(onFind,13589127:In,[(716,209)(716,227)(667,227)(667,244)])
link(Array,2075631:Var,[])
link(Value,3988230:Item,[(692,191)(640,191)(640,247)(629,247)])
}
Add(Timer,10949520,112,301)
{
Interval=10000
Point(onStop)
link(onTimer,15422966:In,[(156,307)(156,325)(100,325)(100,342)])
link(onStop,4887908:doEvent2,[(156,314)(156,310)(65,310)(65,307)])
}
Add(Hub,1678258,189,441)
{
link(onEvent1,2799007:doWork2,[])
link(onEvent2,10404959:doTimer,[(215,454)(215,475)(128,475)(128,496)])
}
Add(Timer,10404959,133,490)
{
Enable=1
AutoStop=1
link(onTimer,6504226:doWork,[(177,496)(177,517)(142,517)(142,538)])
}
Add(Counter,12918742,560,518)
{
Min=-2
Max=500
Default=-1
link(onNext,3017101:doCompare,[])
}
Add(If_else,3017101,602,518)
{
Type=1
link(onTrue,6016019:doRead,[])
link(Op2,1788068:getVar,[])
}
Add(ArrayRW,6016019,651,518)
{
Index=String(0)
link(onRead,8346430:doText,[])
link(Array,2708262:Array,[(657,494)(279,494)])
}
Add(Hub,4743799,476,525)
{
link(onEvent1,12918742:doReset,[(525,531)(525,538)])
link(onEvent2,8173562:doTimer,[(504,538)(504,524)])
}
Add(Switch,3625789,350,518)
{
Point(doOn)
Point(onOn)
Point(onOff)
Point(State)
link(onOn,16682786:doWork1,[])
}
Add(Edit,8346430,700,518)
{
Left=15
Top=295
Width=300
Text=""
Point(Position)
link(onChange,4937416:doString,[])
}
Add(Timer,8173562,511,518)
{
Interval=200
Enable=1
AutoStop=1
link(onTimer,12918742:doNext,[])
}
Add(RichEdit,2514729,259,658)
{
Left=380
Top=230
Width=365
Height=60
ParentFont=0
Visible=1
FileName="BD/aurl.txt"
AddType=1
ScrollBars=3
Point(doDelete)
link(Str,7375844:getVar,[])
}
Add(Hub,4778151,161,672)
{
OutCount=3
link(onEvent1,2514729:doClear,[(195,678)(195,671)])
link(onEvent2,2514729:doLoad,[])
link(onEvent3,9520128:doTimer,[(193,692)(193,706)(163,706)(163,720)])
}
Add(Timer,9520128,175,714)
{
Interval=500
Enable=1
AutoStop=1
link(onTimer,13039666:doEvent1,[])
}
Add(Hub,13039666,217,714)
{
OutCount=3
link(onEvent1,2514729:doAdd,[(241,720)(241,664)])
link(onEvent2,2514729:doSave,[(248,727)(248,692)])
link(onEvent3,14083697:doTimer,[(249,734)(249,720)])
}
Add(Timer,14083697,266,714)
{
Interval=500
Enable=1
AutoStop=1
link(onTimer,16391092:doEvent1,[])
}
Add(Timer,2191214,798,42)
{
Interval=5000
Enable=1
AutoStop=1
link(onTimer,14470158:In,[])
}
Add(FormatStr,4937416,742,518)
{
DataCount=1
Mask="https://www.avito.ru%1"
Point(FString)
link(onFString,388524:onEvent1,[(734,523)(911,523)(911,27)])
}
Add(Hub,3938956,42,238)
{
OutCount=6
link(onEvent1,3590375:In,[(66,244)(66,237)])
link(onEvent2,5566134:doWork,[])
link(onEvent3,8889872:doWork,[(66,258)(66,265)])
link(onEvent5,2766964:doEvent1,[(63,272)(63,328)])
link(onEvent6,4887908:doEvent1,[(66,279)(66,300)])
}
Add(Hub,2766964,70,322)
{
InCount=2
link(onEvent1,10949520:doStop,[(98,328)(98,314)])
}
Add(Hub,4887908,77,294)
{
InCount=2
OutCount=1
link(onEvent1,10949520:doTimer,[(101,300)(101,307)])
}
Add(ArrayEnum,3988230,623,203)
{
link(onItem,7103943:doFind,[])
link(Array,8161639:Var,[])
}
Add(StrList,7884788,224,112)
{
FileName="BD/aurl.txt"
}
Add(Hub,468080,182,119)
{
link(onEvent1,7884788:doClear,[])
link(onEvent2,7884788:doLoad,[(210,132)(210,146)])
}
Add(LineBreak,4232313,224,161)
{
Caption="Lode"
Type=1
link(Data,7884788:Array,[(230,155)(244,155)])
Primary=[8161639,399,21]
}
Add(LineBreak,2199779,665,98)
{
Caption="New"
Type=1
link(Data,15135562:Array,[(671,87)])
Primary=[2075631,7,84]
}
Add(LineBreak,2445705,665,112)
{
Caption="New"
Type=1
link(Data,15135562:Text,[])
Primary=[1546448,-406,308]
}
Add(LineBreak,8815020,665,28)
{
Caption="Del"
link(Out,15135562:doDelete,[(707,34)(707,60)(653,60)(653,83)])
Primary=[13589127,7,210]
}
Add(LineBreak,3809996,623,238)
{
Caption="filtr"
link(Out,3988230:doEnum,[(665,244)(665,223)(611,223)(611,209)])
Primary=[2018070,140,-189]
}
Add(LineBreak,6064818,-7,329)
{
Caption="Resset"
link(Out,10029912:doEvent1,[])
Primary=[14470158,847,-287]
}
Add(LineBreak,7662981,154,427)
{
Caption="Start"
link(Out,1678258:doEvent1,[(209,433)(209,440)(177,440)(177,447)])
Primary=[15422966,-42,-91]
}
Add(LineBreakEx,5566134,77,245)
{
Caption="cls"
}
Add(LineBreakEx,2941615,126,63)
{
Caption="cls"
}
Add(LineBreakEx,140177,588,49)
{
Caption="cls"
Type=1
link(OnEvent,15135562:doClear,[])
}
Add(LineBreak,12842056,112,672)
{
Caption="ADD"
link(Out,4778151:doEvent1,[])
Primary=[3590375,-35,-441]
}
Add(LineBreakEx,862939,350,714)
{
Caption="Can"
}
Add(LineBreakEx,358002,350,504)
{
Caption="Can"
Type=1
link(OnEvent,3625789:doReset,[(401,510)(401,520)(338,520)(338,531)])
}
Add(LineBreakEx,8410805,301,511)
{
Caption="Ban"
}
Add(LineBreakEx,13390871,700,560)
{
Caption="LINK"
Type=3
link(_Data,8346430:Text,[])
}
Add(LineBreakEx,7375844,259,637)
{
Caption="LINK"
Type=2
}
Add(PointHint,6232364,273,126)
{
Info=#9:Загружаем|11:проверенный|6:список|
Width=183
Height=39
}
Add(PointHint,12729060,287,14)
{
Info=#15:Парсим страницу|
Width=183
Height=39
}
Add(PointHint,1904672,721,203)
{
Info=#21:Сортируем проверенные|
Width=183
Height=39
}
Add(PointHint,2075009,161,357)
{
Info=#33:Получаем результат форматирования|
Width=211
Height=39
}
Add(PointHint,5350505,462,469)
{
Info=#41:Получаем первую ссылку и закрываем доступ|
Width=267
Height=39
}
Add(PointHint,1476359,322,658)
{
Info=#42:Добавляем ссылку в файл и открываем доступ|
Width=267
Height=39
}
Add(PointHint,8401025,-70,189)
{
Info=#41:Сбрасываем блок и добавляем ссылку в файл|
Width=260
Height=39
}
Add(PointHint,11156950,-49,21)
{
Info=#5:Ответ|
}
Add(PointHint,9373253,966,21)
{
Info=#18:Запрос на проверку|
Width=106
}
Add(LineBreakEx,8166722,35,28)
{
Caption="Can"
}
Add(LineBreakEx,2768982,70,42)
{
Caption="Ban"
}
Add(LineBreakEx,13840598,63,84)
{
Caption="start"
Type=1
link(OnEvent,16142891:doEvent1,[(115,90)(115,83)])
}
Add(LineBreakEx,6504226,154,532)
{
Caption="start"
}
Add(LineBreakEx,10394356,350,728)
{
Caption="start"
}
Add(Hub,16391092,322,714)
{
link(onEvent1,862939:doWork,[])
link(onEvent2,10394356:doWork,[(343,727)(343,734)])
}
Add(MultiElement,11407112,252,511)
{
link(onEvent1,10721887:doEvent1,[])
link(Data1,9440443:Var2,[(258,505)(265,505)])
}
BEGIN_SDK
Add(EditMulti,242300,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
link(doWork1,1491787:doLength,[(84,27)(84,41)])
}
Add(Length,1491787,105,35)
{
link(onLength,14590118:doCompare,[])
link(Str,242300:Data1,[(111,28)(27,28)])
}
Add(If_else,14590118,168,35)
{
Type=2
Op2=String(5)
link(onTrue,242300:onEvent1,[(260,41)(260,27)])
link(Op1,1491787:Result,[(174,23)(142,23)(142,79)(111,79)])
}
END_SDK
Add(MultiElement,16682786,420,525)
{
link(onEvent1,4743799:doEvent1,[])
link(Data1,9440443:Var3,[(426,495)])
}
BEGIN_SDK
Add(EditMulti,21712,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
link(doWork1,7448556:doLength,[(84,27)(84,41)])
}
Add(Length,7448556,105,35)
{
link(onLength,5099374:doCompare,[])
link(Str,21712:Data1,[(111,28)(27,28)])
}
Add(If_else,5099374,168,35)
{
Type=2
Op2=String(5)
link(onTrue,21712:onEvent1,[(260,41)(260,27)])
link(Op1,7448556:Result,[(174,23)(142,23)(142,79)(111,79)])
}
END_SDK
Add(GetDataEx,9440443,259,490)
{
link(Data,2708262:Text,[])
}
Add(LineBreakEx,8889872,77,259)
{
Caption="cls1"
}
Add(LineBreakEx,6354655,259,406)
{
Caption="cls1"
Type=1
link(OnEvent,2799007:doWork1,[(310,412)(310,428)(235,428)])
}
Add(HubEx,2799007,231,441)
{
link(onEvent,2708262:doClear,[])
}
Add(LineBreakEx,1788068,609,497)
{
Caption="amount"
Type=2
}
Add(LineBreakEx,15359196,266,490)
{
Caption="amount"
Type=3
link(_Data,2708262:Count,[])
}
Add(LineBreakEx,7356700,245,539)
{
Caption="amount"
Type=2
}
Add(DoData,1524908,245,560)
{
link(onEventData,13825039:doWork,[])
link(Data,7356700:getVar,[])
}
Add(LineBreakEx,13825039,287,560)
{
Caption="amount"
}
Add(LineBreakEx,9328669,889,35)
{
Caption="amount"
Type=1
link(OnEvent,388524:onEvent2,[(951,41)(951,34)])
}
Add(Hub,10721887,287,511)
{
link(onEvent1,8410805:doWork,[])
link(onEvent2,1524908:doData,[(294,524)(294,566)])
}
Add(LineBreak,10604525,700,574)
{
Caption="CLL"
link(Out,8346430:doText2,[(745,580)(745,556)(688,556)(688,531)])
Primary=[9705767,-665,-504]
}
Add(HTTPClient,5618421,168,63)
{
URL="https://www.avito.ru/smolensk/kvartiry/sdam/na_dlitelnyy_srok"
UserAgent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
link(onFinish,2188094:doCharset,[])
}
Add(Hub,6763860,707,42)
{
link(onEvent1,2191214:doTimer,[])
link(onEvent2,9179509:doTimer,[])
}
Add(Timer,9179509,728,49)
{
Enable=1
AutoStop=1
link(onTimer,2018070:In,[])
}
Add(Hub,2072458,434,70)
{
link(onEvent1,6977679:doSearch,[])
link(onEvent2,5618421:doAbort,[(460,83)(460,71)(156,71)(156,83)])
}
Add(Hub,10029912,49,329)
{
link(onEvent1,2766964:doEvent2,[])
link(onEvent2,2708262:doAdd,[(161,342)(161,440)])
}
Add(Timer,13994725,308,434)
{
Interval=200
Enable=1
AutoStop=1
link(onTimer,11407112:doWork1,[(352,440)(352,478)(240,478)(240,517)])
}
Add(LineBreakEx,1746387,350,553)
{
Caption="Ban"
Type=1
link(OnEvent,3625789:doOn,[(401,559)(401,555)(338,555)(338,538)])
}
Add(LineBreakEx,4285319,70,56)
{
Caption="cls1"
}
Add(Hub,7331124,42,42)
{
link(onEvent1,4285319:doWork,[(63,48)(63,62)])
link(onEvent2,2768982:doWork,[(63,55)(63,48)])
}
END_SDK
Add(Edit,11628657,490,140)
{
Left=5
Top=65
Width=360
Text=""
link(onChange,16052832:doEvent1,[(530,146)(530,153)])
}
Add(Hub,1784384,455,49)
{
link(onEvent1,10999601:doWork1,[(504,55)(504,104)])
link(onEvent2,16165021:doData,[(479,62)(479,104)])
}
Add(VisualStrings,13100774,189,168)
{
Lines=#6:Сайт 1|
Width=39
}
Add(VisualStrings,4863058,189,259)
{
Lines=#6:Сайт 2|
Width=39
}
Add(ChildPanel,10999601,539,98)
{
link(onEvent1,3581910:In,[])
link(onEvent2,10765621:In,[(576,111)(576,118)])
link(Data1,8394312:Var3,[(545,93)(522,93)(522,180)])
}
BEGIN_SDK
Add(EditMulti,3878779,21,21)
{
EventCount=2
WorkCount=1
DataCount=1
link(doWork1,9230773:doEvent1,[(31,27)(31,34)])
}
Add(Panel,8661037,77,126)
{
Left=35
Top=105
}
Add(MultiElement,15144765,77,84)
{
link(onEvent1,6944521:doEvent1,[])
link(Data1,7623669:Array,[(83,82)(97,82)])
}
BEGIN_SDK
Add(EditMulti,2248661,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
Width=888
Height=795
link(doWork1,1490656:doEvent1,[(63,27)(63,48)])
}
Add(StrList,15112224,314,105)
{
FileName="Vstr-Kuh.txt"
Strings=#21:www.avito.ru=включены|0:|2: |
Point(doGetString)
Point(onGetString)
link(onGetString,12118133:doSplit,[])
}
Add(StrMask,16649704,496,175)
{
Point(doMask)
link(onTrue,7730004:doEvent1,[(535,188)(535,181)])
link(Str,3567205:Value,[(502,166)(354,166)(354,225)(320,225)])
}
Add(StrPart,12118133,370,112)
{
Char="="
DirectEvent=0
Point(Left)
Point(Right)
link(onSplit,16295619:doModify,[])
link(onPart,5829444:doEnum,[(411,125)(411,92)(180,92)(180,188)])
}
Add(Str_Enum,14909804,370,182)
{
link(onEnum,7575575:doString,[])
link(String,12118133:Left,[])
}
Add(ArrayEnum,5829444,202,182)
{
onBreakEnable=0
link(onItem,3966350:doModify,[])
link(Array,6497567:Var3,[(208,102)])
}
Add(StrCase,3966350,258,182)
{
link(onModify,3567205:doValue,[])
}
Add(Memory,3567205,314,182)
{
link(onData,14909804:doEnum,[])
}
Add(Hub,13094285,461,182)
{
link(onEvent1,16649704:doMask,[])
link(onEvent2,16649704:doCompare,[(486,195)(486,181)])
}
Add(FormatStr,7575575,419,182)
{
DataCount=1
Mask="*%1*"
link(onFString,13094285:doEvent1,[])
}
Add(Replace,3425948,587,175)
{
link(onReplace,1269949:doData,[])
link(Sub_str,14909804:Part,[(600,166)(579,166)(579,222)(383,222)])
link(Dest,6660186:Result,[(607,159)(586,159)])
}
Add(StrCat,6660186,580,112)
{
Str1=" "
}
Add(StrCase,16295619,454,112)
{
Type=1
link(onModify,6660186:doStrCat,[])
}
Add(Hub,7730004,545,175)
{
link(onEvent1,3425948:doReplace,[])
link(onEvent2,14909804:doStop,[(570,188)(570,230)(360,230)(360,195)])
}
Add(DoData,1269949,636,175)
{
Data=String(1)
link(onEventData,4476501:doEvent1,[(716,181)(716,104)])
}
Add(PointHint,10583214,748,154)
{
Info=#5:Авито|
Width=99
}
Add(StrList,4486362,314,259)
{
FileName="Vstr-Kuh.txt"
Strings=#29:www.moyareklama.ru=Невключена|0:|2: |
Point(doGetString)
Point(onGetString)
link(onGetString,11917021:doSplit,[])
}
Add(StrMask,5061623,496,329)
{
Point(doMask)
link(onTrue,9864478:doEvent1,[(535,342)(535,335)])
link(Str,9079592:Value,[(502,320)(354,320)(354,379)(320,379)])
}
Add(StrPart,11917021,370,266)
{
Char="="
DirectEvent=0
Point(Left)
Point(Right)
link(onSplit,3681094:doModify,[])
link(onPart,12083422:doEnum,[(411,279)(411,246)(180,246)(180,342)])
}
Add(Str_Enum,1556991,370,336)
{
link(onEnum,14377244:doString,[])
link(String,11917021:Left,[])
}
Add(ArrayEnum,12083422,202,336)
{
onBreakEnable=0
link(onItem,12939068:doModify,[])
link(Array,3976949:Var3,[(208,221)])
}
Add(StrCase,12939068,258,336)
{
link(onModify,9079592:doValue,[])
}
Add(Memory,9079592,314,336)
{
link(onData,1556991:doEnum,[])
}
Add(Hub,15829800,461,336)
{
link(onEvent1,5061623:doMask,[])
link(onEvent2,5061623:doCompare,[(486,349)(486,335)])
}
Add(FormatStr,14377244,419,336)
{
DataCount=1
Mask="*%1*"
link(onFString,15829800:doEvent1,[])
}
Add(Replace,14716064,587,329)
{
link(onReplace,9441758:doData,[])
link(Sub_str,1556991:Part,[(600,320)(579,320)(579,376)(383,376)])
link(Dest,3631883:Result,[(607,313)(586,313)])
}
Add(StrCat,3631883,580,266)
{
Str1=" "
}
Add(StrCase,3681094,454,266)
{
Type=1
link(onModify,3631883:doStrCat,[])
}
Add(Hub,9864478,545,329)
{
link(onEvent1,14716064:doReplace,[])
link(onEvent2,1556991:doStop,[(570,342)(570,384)(360,384)(360,349)])
}
Add(DoData,9441758,636,329)
{
Data=String(2)
link(onEventData,4476501:doEvent2,[(716,335)(716,111)])
}
Add(PointHint,2677553,748,308)
{
Info=#11:Моя реклама|
Width=92
}
Add(StrList,5392819,314,413)
{
FileName="Vstr-Kuh.txt"
Strings=#25:https://youla.ru=Счетчики|0:|2: |
Point(doGetString)
Point(onGetString)
link(onGetString,5027570:doSplit,[])
}
Add(StrMask,1474994,496,483)
{
Point(doMask)
link(onTrue,2777142:doEvent1,[(535,496)(535,489)])
link(Str,4745753:Value,[(502,474)(354,474)(354,533)(320,533)])
}
Add(StrPart,5027570,370,420)
{
Char="="
DirectEvent=0
Point(Left)
Point(Right)
link(onSplit,6575278:doModify,[])
link(onPart,3489293:doEnum,[(411,433)(411,400)(180,400)(180,496)])
}
Add(Str_Enum,7889798,370,490)
{
link(onEnum,10923055:doString,[])
link(String,5027570:Left,[])
}
Add(ArrayEnum,3489293,202,490)
{
onBreakEnable=0
link(onItem,3308772:doModify,[])
link(Array,634377:Var3,[(208,358)])
}
Add(StrCase,3308772,258,490)
{
link(onModify,4745753:doValue,[])
}
Add(Memory,4745753,314,490)
{
link(onData,7889798:doEnum,[])
}
Add(Hub,14064439,461,490)
{
link(onEvent1,1474994:doMask,[])
link(onEvent2,1474994:doCompare,[(486,503)(486,489)])
}
Add(FormatStr,10923055,419,490)
{
DataCount=1
Mask="*%1*"
link(onFString,14064439:doEvent1,[])
}
Add(Replace,2365950,587,483)
{
link(onReplace,10274190:doData,[])
link(Sub_str,7889798:Part,[(600,474)(579,474)(579,530)(383,530)])
link(Dest,3574734:Result,[(607,467)(586,467)])
}
Add(StrCat,3574734,580,420)
{
Str1=" "
}
Add(StrCase,6575278,454,420)
{
Type=1
link(onModify,3574734:doStrCat,[])
}
Add(Hub,2777142,545,483)
{
link(onEvent1,2365950:doReplace,[])
link(onEvent2,7889798:doStop,[(570,496)(570,538)(360,538)(360,503)])
}
Add(DoData,10274190,636,483)
{
Data=String(3)
link(onEventData,4476501:doEvent3,[(716,489)(716,118)])
}
Add(PointHint,15100621,748,462)
{
Info=#3:Юла|
}
Add(StrList,10946969,314,560)
{
FileName="Vstr-Kuh.txt"
Strings=#43:+ свет; +свет; + Эл.Энергипя; по свету=Свет|0:|2: |
Point(doGetString)
Point(onGetString)
link(onGetString,8667487:doSplit,[])
}
Add(StrMask,7891580,496,630)
{
Point(doMask)
link(onTrue,4290182:doEvent1,[(535,643)(535,636)])
link(Str,15495293:Value,[(502,621)(354,621)(354,680)(320,680)])
}
Add(StrPart,8667487,370,567)
{
Char="="
DirectEvent=0
Point(Left)
Point(Right)
link(onSplit,9940127:doModify,[])
link(onPart,296675:doEnum,[(411,580)(411,547)(180,547)(180,643)])
}
Add(Str_Enum,2883602,370,637)
{
link(onEnum,7461049:doString,[])
link(String,8667487:Left,[])
}
Add(ArrayEnum,296675,202,637)
{
onBreakEnable=0
link(onItem,9927583:doModify,[])
link(Array,634377:Var2,[(208,499)(132,499)])
}
Add(StrCase,9927583,258,637)
{
link(onModify,15495293:doValue,[])
}
Add(Memory,15495293,314,637)
{
link(onData,2883602:doEnum,[])
}
Add(Hub,13822681,461,637)
{
link(onEvent1,7891580:doMask,[])
link(onEvent2,7891580:doCompare,[(486,650)(486,636)])
}
Add(FormatStr,7461049,419,637)
{
DataCount=1
Mask="*%1*"
link(onFString,13822681:doEvent1,[])
}
Add(Replace,16220282,587,630)
{
link(onReplace,2653738:doData,[])
link(Sub_str,2883602:Part,[(600,621)(579,621)(579,677)(383,677)])
link(Dest,418613:Result,[(607,614)(586,614)])
}
Add(StrCat,418613,580,567)
{
Str1=" "
}
Add(StrCase,9940127,454,567)
{
Type=1
link(onModify,418613:doStrCat,[])
}
Add(Hub,4290182,545,630)
{
link(onEvent1,16220282:doReplace,[])
link(onEvent2,2883602:doStop,[(570,643)(570,685)(360,685)(360,650)])
}
Add(DoData,2653738,636,630)
{
Data=String(4)
}
Add(PointHint,2401042,748,609)
{
Info=#4:Свет|
Width=113
}
Add(GetDataEx,6497567,42,97)
{
Angle=3
link(Data,2248661:Data1,[(27,102)])
}
Add(GetDataEx,3976949,91,216)
{
Angle=3
link(Data,6497567:Var2,[(48,221)])
}
Add(GetDataEx,634377,126,353)
{
Angle=3
link(Data,3976949:Var2,[(97,358)])
}
Add(Hub,1490656,105,42)
{
OutCount=4
link(onEvent1,15112224:doGetString,[(217,48)(217,153)])
link(onEvent2,4486362:doGetString,[(217,55)(217,307)])
link(onEvent3,5392819:doGetString,[(217,62)(217,461)])
link(onEvent4,10946969:doGetString,[(217,69)(217,608)])
}
Add(Hub,4476501,763,98)
{
InCount=4
OutCount=1
link(onEvent1,2248661:onEvent1,[(843,104)(843,27)])
}
END_SDK
Add(ListBox,7623669,77,28)
{
Left=70
Top=25
link(onChange,15144765:doWork1,[(121,34)(121,62)(65,62)(65,90)])
link(Str,3878779:Data1,[(83,24)(27,24)])
}
Add(Hub,9230773,42,28)
{
link(onEvent1,7623669:doClear,[(66,34)(66,41)])
link(onEvent2,7623669:doAdd,[(66,41)(66,34)])
}
Add(ChanelToIndex,6952619,259,84)
{
Count=4
link(onIndex,3878779:onEvent1,[(306,90)(306,27)])
}
Add(If_else,14956670,182,84)
{
Op2=String(1)
link(onTrue,6952619:doWork1,[])
link(onFalse,6023104:doWork1,[(236,97)(236,139)])
}
Add(If_else,7644847,182,126)
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)