Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26151
Рейтинг: 2127
#16: 2015-07-13 23:17:04 ЛС | профиль | цитата
Tad писал(а):
Немного ускорил

Ускорить существенно можно только распараллелив чтение на несколько потоков. На данный момент, во втором HTTP_Get стоит Wait=true, те работает он в основном потоке, надо заставить его работать в режиме Wait=false и по несколько штук сразу
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#17: 2015-07-13 23:55:27 ЛС | профиль | цитата
Сначала
Tad писал(а):
Завтра попробую уменьшить обрабатываемый блок.
или вообще изменить алгоритм.
Название книги и Ф.И.О. автора есть после первого HTTP_Get
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Udokanec
Ответов: 287
Рейтинг: 5
#18: 2015-07-14 02:16:18 ЛС | профиль | цитата
Tad
Спасибо.Но скорость не впечатляет все равно.А нельзя организовать перебор в несколько потоков
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#19: 2015-07-14 02:32:47 ЛС | профиль | цитата
Udokanec писал(а):
А нельзя организовать перебор в несколько потоков

Можно, но довольно сложно получается. Упрощать мне уже перехотелось, упрощайте сами, если устроит

Add(MainForm,10860321,98,252)
{
Width=1104
Height=496
Position=1
}
Add(Button,12643928,98,203)
{
Left=30
Top=40
Font=[MS Sans Serif,10,1,0,1]
Caption="Пуск"
link(onClick,177524:doDownload,[])
}
Add(Edit,516132,161,147)
{
Left=30
Top=10
Width=355
Text="http://www.flibusta.net/g/sf_history"
}
Add(HTTP_Get,177524,161,203)
{
link(onDownload,3018878:doConvert,[])
link(URL,516132:Text,[])
}
Add(Convertor,3018878,210,210)
{
Mode=11
link(onResult,6530865:doSearch,[])
}
Add(StrList,1172757,532,210)
{
FileName="file.txt"
Strings=#0:|0:|0:|
}
Add(BlockFind,6530865,259,210)
{
IncludeBlock=1
StartBlock="/b/"
EndBlock=">"
link(onSearch,4646214:doStrCat,[])
link(onEndSearch,5430882:doEvent1,[(300,223)(300,258)])
}
Add(StrCat,4646214,308,210)
{
Str1="http://www.flibusta.net/b/"
link(onStrCat,1172757:doAdd,[])
}
Add(Application,1368538,1379,490)
{
Wait=1
}
Add(Label,14074347,1379,399)
{
Left=270
Top=50
Width=110
Caption=""
AutoSize=1
Alignment=1
link(Text,12230286:Count,[])
}
Add(StringTable,12230286,1379,224)
{
Left=15
Top=75
Width=1055
Height=373
Name="tab"
Columns=#18:Название книги=260|9:Автор=180|9:Размер=70|10:Ссылка=250|10:Ccskrf=250|
StrDelimiter="+"
Grid=0
Point(doEnsureVisible)
Point(EndIdx)
Point(PerPage)
}
Add(DoData,715744,1393,357)
{
link(onEventData,12230286:doEnsureVisible,[(1437,363)(1437,345)(1367,345)(1367,265)])
link(Data,12230286:EndIdx,[])
}
Add(Hub,11697552,1309,406)
{
OutCount=4
link(onEvent1,715744:doData,[(1360,412)(1360,363)])
link(onEvent2,14074347:doText,[(1368,419)(1368,405)])
link(onEvent3,6404535:doEndUpdate,[(1348,426)(1348,468)])
link(onEvent4,1368538:doProcessMessages,[(1341,433)(1341,496)])
}
Add(Button,2144069,581,252)
{
Left=120
Top=40
Font=[MS Sans Serif,10,1,0,1]
Caption="Стоп"
Data=Integer(10000000)
link(onClick,8504764:doWork1,[(634,258)])
}
Add(ArrayRW,8298997,889,364)
{
link(onRead,5275191:##add,[])
link(Array,1172757:Array,[(895,341)(552,341)])
}
Add(Hub,5430882,315,252)
{
OutCount=3
link(onEvent1,9277452:doOn,[])
link(onEvent2,2721395:doReset,[(340,265)(340,622)])
link(onEvent3,15718944:doOperation,[(389,272)(389,370)])
}
Add(If_else,13981546,644,364)
{
Type=1
link(onTrue,13766748:doFor,[])
link(onFalse,14933269:doEvent1,[(690,377)(690,503)(396,503)(396,447)])
link(Op2,14632370:Var3,[(657,355)(685,355)(685,411)])
}
Add(Math,4431190,588,364)
{
ResultType=0
Default=-20
link(onResult,8504764:doWork2,[])
link(Op1,9752697:Var1,[(594,355)(580,355)(580,404)])
link(Op2,14091636:Var2,[])
}
Add(LED,9277452,413,238)
{
Left=395
Top=7
}
Add(MultiElementEx,5275191,980,364)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,6858109,21,21)
{
WorkCount=#5:##add|8:##select|7:##clear|
VarCount=#4:Busy|6:Result|7:##count|
Width=566
Height=277
Point(##add)
Point(##select)
Point(##clear)
Point(##count)
link(##add,11904734:doDownload,[(67,27)(67,181)])
link(Busy,7848559:Value,[(27,264)(202,264)])
link(Result,6552645:Result,[(34,271)(524,271)])
}
Add(Convertor,9563503,147,182)
{
Mode=11
link(onResult,5086714:doSearch,[])
}
Add(Hub,11823975,315,182)
{
OutCount=5
link(onEvent1,11978378:doSearch,[(336,188)(336,41)])
link(onEvent2,4547374:doSearch,[(340,195)(340,90)])
link(onEvent3,12215310:doSearch,[(347,202)(347,132)])
link(onEvent4,15702063:doSearch,[(356,209)(356,181)])
link(onEvent5,11165806:doSearch,[(342,216)(342,230)])
}
Add(Charset,199351,252,182)
{
Type=7
link(onCharset,11823975:doEvent1,[])
}
Add(BlockFind,11978378,364,35)
{
IncludeBlock=1
StartBlock="<h1 class="title">"
EndBlock=" (fb2)</h1>"
link(onSearch,3476079:doValue,[])
}
Add(BlockFind,5086714,196,182)
{
StartBlock="<div class="content">"
EndBlock="<p><br><BR><br><hr/><form name="
link(onSearch,199351:doCharset,[])
link(onEndSearch,11904734:doStop,[(235,195)(235,167)(74,167)(74,188)])
}
Add(StrCatDelim,2097359,518,84)
{
Delimiter="+"
link(Str1,3476079:Value,[])
}
Add(BlockFind,4547374,364,84)
{
StartBlock="<a href=/a/"
EndBlock="</a>"
link(onSearch,786975:doSearch,[])
}
Add(BlockFind,12215310,364,126)
{
IncludeBlock=1
StartBlock="size>"
EndBlock="</span>"
link(onSearch,10215808:doStrCatDlm,[])
}
Add(StrCatDelim,10215808,518,126)
{
Delimiter="+"
link(Str1,2097359:Result,[])
}
Add(BlockFind,786975,420,84)
{
IncludeBlock=1
StartBlock=">"
EndBlock="</a>"
link(onSearch,2097359:doStrCatDlm,[])
}
Add(BlockFind,15702063,364,175)
{
IncludeBlock=1
StartBlock="скачать: <a href="
EndBlock=">(fb2)"
link(onSearch,4970300:doStrCatDlm,[])
}
Add(StrCatDelim,12981569,518,175)
{
Delimiter="+"
link(Str1,10215808:Result,[])
}
Add(BlockFind,11165806,364,224)
{
StartBlock="<a href=/b/"
EndBlock="read"
link(onSearch,9726324:doDelete,[])
}
Add(Delete,9726324,413,224)
{
Count=8
link(onDelete,3977185:doStrCatDlm,[])
}
Add(StrCatDelim,6552645,518,224)
{
Delimiter="+"
link(Str1,12981569:Result,[])
}
Add(HTTP_Get,11904734,84,175)
{
link(onDownload,9563503:doConvert,[])
link(onStop,16376638:doData,[(137,202)(137,230)])
}
Add(Memory,3476079,518,35)
{
}
Add(StrCatDelim,4970300,413,175)
{
Str1="==http://www.flibusta.net"
Str2=".gg"
Point(Delimiter)
link(onStrCatDlm,12981569:doStrCatDlm,[])
}
Add(StrCatDelim,3977185,469,224)
{
Str1="=http://www.flibusta.net"
link(onStrCatDlm,6552645:doStrCatDlm,[])
}
Add(Memory,7848559,196,224)
{
Default=Integer(1)
}
Add(DoData,16376638,147,224)
{
Data=Integer(0)
link(onEventData,7848559:doValue,[])
}
END_SDK
Add(Math,15822941,448,364)
{
OpType=7
ResultType=0
link(onResult,8889846:doOperation,[])
link(Op1,15600709:Var2,[])
link(Op2,14403516:Var2,[])
}
Add(Math,15718944,399,364)
{
OpType=8
ResultType=0
link(onResult,15822941:doOperation,[])
link(Op1,15600709:Var1,[(405,281)])
link(Op2,14403516:Var1,[(412,320)])
}
Add(For,13766748,714,364)
{
IncludeEnd=1
link(onEvent,13911075:doOperation,[])
link(onStop,15608471:doWork1,[(753,377)])
link(End,14091636:Var3,[(727,320)])
}
Add(Math,8889846,497,364)
{
OpType=2
ResultType=0
link(onResult,8571414:doWork2,[])
link(Op2,1777858:Var2,[])
}
Add(GetDataEx,9752697,588,399)
{
link(Data,4431190:Result,[])
}
Add(Math,13911075,777,364)
{
ResultType=0
link(onResult,5404733:doWork2,[])
link(Op1,9752697:Var3,[(783,348)(629,348)(629,404)])
link(Op2,13766748:Position,[(790,355)(818,355)(818,404)(720,404)])
}
Add(Timer,4871956,784,455)
{
Interval=50
Enable=1
link(onTimer,6739906:doEvent1,[])
}
Add(For,45353,868,462)
{
IncludeEnd=1
link(onEvent,15096239:doEvent1,[])
link(onStop,12145343:doCompare,[(909,475)(909,531)])
link(End,6747223:Var1,[(881,404)])
}
Add(Math,13996839,973,469)
{
Op2=1
ResultType=0
Point(doClear)
link(Op1,4188931:Var1,[(979,460)(965,460)(965,509)])
link(Op2,5275191:Busy,[])
}
Add(GetDataEx,4188931,973,504)
{
link(Data,13996839:Result,[])
}
Add(Hub,6739906,833,455)
{
link(onEvent1,13996839:doClear,[(858,461)(858,454)(956,454)(956,482)])
link(onEvent2,45353:doFor,[])
}
Add(If_else,12145343,973,525)
{
Op2=Integer(0)
link(onTrue,1790050:doEvent1,[])
link(Op1,4188931:Var2,[])
}
Add(For,1078893,1064,539)
{
IncludeEnd=1
link(onEvent,3428513:doEvent1,[])
link(onStop,4470155:doEvent1,[(1110,552)(1110,566)])
link(End,6747223:Var3,[(1077,404)])
}
Add(HubEx,9707336,942,413)
{
Angle=3
link(onEvent,5275191:##select,[(946,377)])
}
Add(Hub,3428513,1162,539)
{
link(onEvent1,9707336:doWork1,[(1187,545)(1187,419)])
link(onEvent2,5836995:doData,[])
}
Add(DoData,5836995,1211,546)
{
link(onEventData,13853218:doCase,[(1250,552)(1250,230)])
link(Data,5275191:Result,[(1217,411)(993,411)])
}
Add(Hub,1790050,1022,525)
{
OutCount=3
link(onEvent1,4871956:doStop,[(1047,531)(1047,566)(774,566)(774,468)])
link(onEvent2,6404535:doBeginUpdate,[(1054,538)(1054,594)(1355,594)(1355,461)])
link(onEvent3,1078893:doFor,[])
}
Add(Hub,15096239,917,462)
{
link(onEvent1,9707336:doWork3,[(946,468)])
link(onEvent2,13996839:doOperation,[])
}
Add(Hub,4470155,1120,560)
{
OutCount=3
link(onEvent1,5275191:##clear,[(1145,566)(1145,454)(970,454)(970,384)])
link(onEvent2,15885229:doEvent,[(1145,573)(1145,664)])
link(onEvent3,11697552:doEvent1,[(1257,580)(1257,412)])
}
Add(HubEx,8571414,560,364)
{
link(onEvent,4431190:doOperation,[])
}
Add(Case,13853218,1288,224)
{
Value=String()
link(onNextCase,12230286:doAdd,[])
}
Add(RedrawManager,6404535,1379,448)
{
ControlManager="tab"
Point(doBeginUpdate)
Point(doEndUpdate)
}
Add(GetDataEx,6747223,994,399)
{
link(Data,5275191:##count,[])
}
Add(For,7682409,497,448)
{
IncludeEnd=1
InData=0
link(onEvent,5404733:doWork3,[(760,454)(760,447)(837,447)])
link(onStop,15608471:doWork2,[])
link(Start,14632370:Var2,[])
}
Add(GetDataEx,14632370,497,406)
{
link(Data,8889846:Result,[])
}
Add(GetDataEx,15600709,448,276)
{
Angle=1
link(Data,1172757:Count,[(545,281)])
}
Add(Math,7988423,448,448)
{
ResultType=0
link(onResult,7682409:doFor,[])
link(Op1,15718944:Result,[(454,432)(405,432)])
link(Op2,14632370:Var1,[(461,411)])
}
Add(HubEx,5404733,833,364)
{
link(onEvent,8298997:doRead,[])
}
Add(IndexToChanel,15885229,1176,658)
{
Point(Index)
link(onEvent1,8571414:doWork3,[(1215,664)(1215,601)(564,601)])
link(Index,2721395:State,[])
}
Add(Switch,2721395,1176,609)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(State)
Point(doOn)
}
Add(Hub,14933269,406,441)
{
link(onEvent1,2721395:doOn,[(431,447)(431,629)])
link(onEvent2,7988423:doOperation,[])
}
Add(HubEx,15608471,749,455)
{
link(onEvent,4871956:doTimer,[])
}
Add(GetDataEx,14091636,595,315)
{
link(Data,12230286:PerPage,[(601,306)(1406,306)])
}
Add(GetDataEx,1777858,504,315)
{
Angle=1
link(Data,14091636:Var1,[])
}
Add(GetDataEx,14403516,455,315)
{
Angle=1
link(Data,1777858:Var1,[])
}
Add(HubEx,8504764,630,364)
{
link(onEvent,13981546:doCompare,[])
}

карма: 22

0
Ответов: 287
Рейтинг: 5
#20: 2015-07-14 02:54:49 ЛС | профиль | цитата
Да не тем путем я пошел.Надо как и прежде список скидывать на свой сервак а после парсить в таблицу.Вот только с автообновлением надо мудрить.
------------ Дoбавленo в 02.54:
Всем большое спасибо.
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#21: 2015-07-14 03:03:34 ЛС | профиль | цитата
Udokanec писал(а):
Да не тем путем я пошел

Метод чтения по списку ссылок сам по себе медленный, тк сильно зависит от многих параметров, тут и скорость компа, и скорость нэта, и отклик сервера
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#22: 2015-07-14 15:13:30 ЛС | профиль | цитата
nesco писал(а):
тк сильно зависит от многих параметров, тут и скорость компа, и скорость нэта, и отклик сервера
Всё верно. Думаю, что даже с моим оптоволокном обработать 2622 ссылки за 30 минут совсем неплохой результат.
Последнее "Страж фараона+Михаил Ахманов+774K+http://www.flibusta.net/b/467/fb2.gg+http://www.flibusta.net/b/467/read".
Дальше не пошло.


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#23: 2015-07-14 15:24:42 ЛС | профиль | цитата
Tad писал(а):
Думаю, что даже с моим оптоволокном обработать 3000 ссылок за 30 минут совсем не плохой результат

С блочным алгоритмом, у меня на оптике, отработало минут за 5. Я что-то сомневаюсь, что можно в RealTime считать быстрее, если нет доступа к самой базе, а похоже, что там нет никакой базы вообще
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#24: 2015-07-14 15:51:28 ЛС | профиль | цитата
nesco, выше головы не прыгнешь:
Udokanec, и ещё одно:
Моя хранимая Химари+Роман Иванович Димитров+8420K+http://www.flibusta.net/b/411120/fb2.gg+http://www.flibusta.net/b/411120/read

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1tad_tracert.png [12.6KB] [447]
Разработчик
Ответов: 26151
Рейтинг: 2127
#25: 2015-07-14 16:09:35 ЛС | профиль | цитата
Tad писал(а):
выше головы не прыгнешь

Не впечатляет, от слова совсем. Тормоза еще те.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#26: 2015-07-14 19:17:32 ЛС | профиль | цитата
А так ?
code_36009.txt

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_36009.txt [2.5KB] [275]
Разработчик
Ответов: 26151
Рейтинг: 2127
#27: 2015-07-14 20:03:31 ЛС | профиль | цитата
Tad писал(а):
А так ?

Ха. Ты используешь инфу главной страницы. Но, в данном случае, у тебя нет размера книги
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#28: 2015-07-14 23:16:11 ЛС | профиль | цитата
Ну, например, мне она ни на не нужна.
Если я нашёл интересующую меня книгу, то скачаю её по любому.
Главное - получить ссылку.
------------ Дoбавленo в 23.16:
Там ещё попадаются такие фокусы - один автор и несколько книг
<h5><a href=/a/31291>Наталья Владимировна Резанова</a></h5>2783 <a href=/b/134506>Явление хозяев</a><br>
2784 <a href=/b/134503>Чудо и чудовище</a><br>
2785 <a href=/b/134502>Из-за острова на стрежень</a><br>
2786 <a href=/b/134501>Посетите город Горький</a><br>
2787 <a href=/b/134500>Рассказ из американской жизни</a><br>
2788 <a href=/b/134499>Дело процентщика-убийцы</a><br>
Придётся, при случае, ещё поломать голову.Парсить страницу нужно как-то по другому.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Udokanec
Гость
Ответов: 17029
Рейтинг: 0
#29: 2015-07-15 03:49:14 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-03 12:58:08
карма: 0

0
Ответов: 287
Рейтинг: 5
#30: 2015-07-15 08:03:06 ЛС | профиль | цитата
Tad
Подскажите еще пожалуйста.Почему при пред осмотре в WebBrowser не отображаются картинки
code_36012.txt
------------ Дoбавленo в 08.03:
Все сам решил проблему
карма: 0

0
файлы: 1code_36012.txt [2.6KB] [248]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)