From c7160d1f6be36797923ef72a8d852f9411fc767d Mon Sep 17 00:00:00 2001 From: siulkilulki Date: Mon, 11 Jun 2018 00:40:40 +0200 Subject: [PATCH] tmp add desc --- bibliografia.bib | 78 +++++++++++++++ img/crawler_adresow.png | Bin 6266 -> 8071 bytes img/crawler_adresow_trans.png | Bin 11492 -> 10737 bytes img/crawler_parafii_general.png | Bin 14339 -> 11620 bytes img/crawler_url.png | Bin 5740 -> 11880 bytes img/crawler_url_trans.png | Bin 15725 -> 12953 bytes rozdzial_3.tex | 169 +++++++++++++++++++++++--------- 7 files changed, 200 insertions(+), 47 deletions(-) diff --git a/bibliografia.bib b/bibliografia.bib index 255d476..61eafa8 100644 --- a/bibliografia.bib +++ b/bibliografia.bib @@ -33,4 +33,82 @@ Fourteenth International Conference on Computational Linguistics, Nantes, France pages={87--112}, year={1994}, publisher={Springer} +} + + +@article{gus, + title={Rocznik statystyczny Rzeczypospolitej Polskiej 2017}, + author={Dominik Rozkrut i in}, + journal={GUS}, + volume={T. LXXVII}, + pages={194--195}, + year={2016} + @Comment publisher={} +} + +@misc{beautiful_soup, + title = {BeautifulSoup}, + note = {Crummy.org}, + key = {BeautifulSoup}, + howpublished={\url{https://www.crummy.com/software/BeautifulSoup/}} +} +@misc{expotential_backoff} +@misc{google_api} +@misc{text_search} +@misc{place_detail} +@misc{jsonline} +@misc{binaryornot} +@misc{html2text} +@misc{markdown} +@article{parallel, + title = {GNU Parallel - The Command-Line Power Tool}, + author = {O. Tange}, + address = {Frederiksberg, Denmark}, + journal = {;login: The USENIX Magazine}, + month = {Feb}, + number = {1}, + volume = {36}, + url = {http://www.gnu.org/s/parallel}, + year = {2011}, + pages = {42-47} +} +@techreport{RFC2045, + author = {Ned Freed and Nathaniel S. Borenstein}, + title = {Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies}, + howpublished = {Internet Requests for Comments}, + type = {RFC}, + number = {2045}, + year = {1996}, + month = {November}, + issn = {2070-1721}, + publisher = {RFC Editor}, + institution = {RFC Editor}, + url = {http://www.rfc-editor.org/rfc/rfc2045.txt}, + note = {\url{http://www.rfc-editor.org/rfc/rfc2045.txt}}, +} +@techreport{RFC7231, + author = {R. Fielding and J. Reschke}, + title = {Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content}, + howpublished = {Internet Requests for Comments}, + type = {RFC}, + number = {7231}, + year = {2014}, + month = {June}, + issn = {2070-1721}, + publisher = {RFC Editor}, + institution = {RFC Editor}, + url = {http://www.rfc-editor.org/rfc/rfc7231.txt}, + note = {\url{http://www.rfc-editor.org/rfc/rfc7231.txt}}, +} +@techreport{RFC6266, + author = {J. Reschke}, + title = {Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)}, + howpublished = {Internet Requests for Comments}, + type = {RFC}, + number = {6266}, + year = {2011}, + month = {June}, + issn = {2070-1721}, + publisher = {RFC Editor}, + institution = {RFC Editor}, } \ No newline at end of file diff --git a/img/crawler_adresow.png b/img/crawler_adresow.png index fd6026e194bafdf1325f32d1c4721743343ebe2c..ec1d0c3444d791c4567bb5b3164441ca6d2c8194 100644 GIT binary patch literal 8071 zcmeHsRaBf$@FfI-O9+Fz1{vHE+y@D6gF7KO0fK9A4H6_cgX`e#8r&Iz2N~R5|NQoG zcc1ooU%vC5d#cX4Reig=x++3d8H9~Nih+QDfGsa4t&V_zIP&^0f`;WLd}b9o~NlBKkBr1h7t*X*&Rr1^;nWaTBVD9}#oge|Cy{+Kmo zek}HRV7^mBRJ{9}!hjD=Y7Vrd%?c>^jK!?Mg$%T`0c%ww1M9nnxZkODsiVjyRinL0 z=H{=I|@+?*Qk%%K2my@=}|m5tdW`{i!-h^R0Kd%^wXsyxhf&r_!a)7@AZrE&vgy3|8upA6~obZr9T zEvf%w7R_XiXMs49>wCmyIsR?yPr6D%A?flG&dg4wT*EacSfNJW+7R*Pu7n$*fUG-|FZiFs*6)2WQ0p`3|)^aMj~!|LuMnZ;0O?ZjYB^Hr9Oc+@A0@H;RgK zyR*F+5V_Fd4|m749J62h#oD#(s~w(WSEPLPCZ8OQI)ma)*1DT2(O-N&Jz{->|3N+2 zss9Ciyjk;iek`WS67!9Y)UwI>#%EsXEpX1*;r|es!jVPi9ZSwxIip%4B;!4-QyxU; zhx$__3~ceK6bYbZy4CJw0YqAWpJ! zdbz*C6h-|GG2OHp`Xz+h;dj?_!{s=|Kj8KpcAZW90yo$M4t*m2!oVv5@?*NCf zDC?70z3$n~$x*qvrX0kCRo7HLa@TAH5K6$(oujE+Zd^~SsO?Ry-*8AgJA%W2rH~uZ z%y8Ix13F;TnyT|8OJcDN$1Y3G0d?kDPZc7OE^v00l&Qpjar@f_u(y{nJ7xc zK6H$u1HZRjNW$kER-Ep)xO^UODIE@OsL!pCAN0@9@)O5w4L4dGh=#R_qm}JRb0rH( zi}fJ<*T=Bn7VO_SUtTsyodf>nGL@xF^lygYa{8`fJj-33tS#wQsmITTZCBIzIT?OL zYW0KQzdEz0cy|4f1|@_ zg-R^PR7->$*FPYm`P&6kx~HL3Q{`HWx4VP$B=oC00=LCbKv5i3jaZSj+g;G!DVFfa z4I`|cvn2eYaW&^lQL@b^@$P6wsHXjgITid~C}3) zIfdpHiu?R@hhJsfZjqC~y%!UJpqP6fJ9f-uSSftI&4FgPVt{se)z`L7_N(Wfa`^|} z2s|)UieUS&WD~9Z5zPp~T6bFO$ zA(T${8-79egWh;L0xxq?t}es}q;byMuf)0XV+m-Y{KX8D_DWzuYZL7D~8@A$3*1hbe(8zbL)nQk1S!;ame zb%H5j2Z8NE{M^9T)P>*i44#pj$D1*zwv^K}IDpY9GBb*GTSfKiYc+b#VQOMoREAJ9 z#b~(YMAi?wktn#zAZKu10t>l+*mk*m@7eyg3yNq=w+i_bkxW#I33yuAuGOlZ(|r+T zR^V%?&rZPc>zToW%rk&%DyNQ0#`_JUGvto4^ZiH)I@o4s^(~NZCQ;M&4@I*2Ss41A z`MEt~A>r;JETwg^=5EHrH=MR+d7EPRK;4?b7Bq5C&Rd)e)UBzZDv*5UxrCVlGX)4B zjN{#9Iup)2Wqk*pgXp6?#N9JMGXXx14mn-a=Co)fBj64q{Hx+pqW1 zo7Zg}9paF#mZORXPMeb+_?+f({4-REz?2u;U9e67ekX?Ulr82R^ut?Z(so_W&hR9e z35>HlMTt$C22qTA76wlC{{?7Mw3rR;mI(8z)_zCABK`D9HVoGBl`j^B{GXi5wVAu$ zLtb%%#ojk!0sFuJ%g5C=l6Il~8#leM?dKm79+$UoQLbtgd8-7kh;bW3An_cI$I@$b z6^6TH?;_cRd^wA&CWk(@u(m_?1nfaA7Y*O zS3wqYi~6@&90R0RI)BKpHU{nRAL*s%w5e@_q4_7H2g$uX1o|-0^jcZ+xI~;^uhTiq z)M7Y8x7op>d-SXgzpJf)AVW}>mh+JD+t#FnoGOBqGWqc1WH3^x;99dA8%LKx;|gls zZeroZFezz)Ay|D=UZS<3(i}FG-m}k^^(dQ5s>?#HSsG1)+xz`Q2mnEKgUj&wW`JCz zWd|^Y-F{qc%r3q+Mk_Sxer()Ny-0Segw>445CP)V!lJVV%y%O~7$h90hy2=VlCeHt zlp_27cFhtq2V${m%C@{zoZ48tR#5m~Hm7DDw6O5U%9g#9ocQcML=v$k?Rw|eV=8JpL@}Ft z_qNnCODc!-w#nQ3JX|Bed+1CY^gs&G&rtu;9|f9^rjpO8ga_{?xh=uJL__z z4Ork==lj4zSgu(~q&A2+=cf|AXT2CubjT#ms?+iQ`3{b1#SZ?(Pp2re`IYiyGweoT zyYI@J@xIgZDItW8Zjz7pt_*DR_yH#%=kxGzqChA2)=T1nf7Qd&l7LZuqJTf*b7Y=z ze?vlNv!j9`YwjF07GW7-^5Yl>!i;8a3C2jf5ooffO|-2oZsQ`Q%6euRIRsPYGbJy`eHy?-YFT z-C5R>7V!yZri0elc;Jrs8SiH&Q6<(ggZZMZ9`+%+MW{PTea2(dJ@$7mEG=nk(F((*+GwU zmnps>c{e#+_&J6&}nqUaw-gn78NP?Ebv&LnrU)5!Bf~JkY$YueO$W26ppyY zfpGZ`ynBvD_`2AJ*n7T}Hu9L3Cr4fLDg&E0Bi89fzW&AIRGpqz?^~L`+1BAE?C(rY z#ni`Th^l1MAib8hWScjV6NN`U7^#f&DvW%n32p~+W+8wDh6)sVWX1Q73<1{rh-+Fo z&73`h*I{OScA~yKyaHuE?(56`o!2j+VSEbHC%Wc}W|^y&(jOUMGFGOFG7#ZhUZfPE zD0ia2#rhGb09#~56Y?ey7(WV?*lzG}{_rl1=Sz@Q(MHqFIy!sy-|nkuGNGITPv4AY zC+z13NNt2c%Qwtqico5ne?Q-|T;2s)>N{=D`A6*t2|Y{?f>m!>g(`*dz`H@6z|i{E>& zjwLGP@fj{ZX%*PtR7j}2&hp1b)QPN4*`lmXJkKeO|FvHQIWX?yCpqn=pG*5!)b)_w zBr{i>y}rA328}*$c5)G9Wmv>LBAR#y$5lYyB;R3=LQS^;bzc|5b(jwTT-`^fPeYlC zM4-5AnFGQp7f^bmw|N{Kj~v!4x0p)Au?C%4t+QcasrgzPj z-rN%`t#7Z0@9yt(J)x?IOC{r0dAqpk*LR3eu3c_~r_t6$@aX(ouHNmp1)OQwTE{Ki z#F?yzHxH$M_+X_Rxtie0dXA{DPt?2IpMKlS%W=EW`@xU7$^8!D+xGp7_3gjybl^pl z5aLj}08w$pZ0Jo~9%QBIugG#UrrZlFQJjWsB_gOtwJa3xeCy92`!dZ194bms)hAU7 zJw~B^R7Lo6tkcqWwm*VO7^~qAMHhM0AjA>CtQUruLKk-kK^AFTqKAb%3uFTv3G6KE zIiHQkX3}p#E=$UAhsDP*Y3Si9>NvnnVcB9Y{ZT27p4MllfxBaW0G@haA&A6^O{!oe zuK!MrHJ$%zoikgxQ70||7Pcx>+-PgK1WB(>3U4}KgPln`AAvFYo8(@p_UTfi!JS=* z(&i6_K%3uDLb!?VVU9AgxyBRM)~j_mpg1+W)nSMD3KOJdoV7tHuPqP4#0m1Ld(=up zx8+nJu~he<6vz6Wy;$W^w<#8=n3s2@u?Ty?`}~rDW#Oprbmho1HB7#-G7}Gi`5w6R zos_Z+n-^d}?SK4nNyNDh|3IkEzoJIuIZUP7ZH(RL?jC!s^JTsG3BI)ZH2%9s{Y@{F ze*A=vYWR7tjcK48GQaC zxV`Ft<;n{*%E~L)c9@z}OLv``>pe(@rWsg{%AEU|b0Vpc9VwZ1rs;1*K*7K5U|P3G zSrwE@(A@C0hw?94E0P}W?&p%d49ikMq_b0LTWT#+`8z}%j`R`Mq=XuSkKPG9sB8w+ ze2dEGw@cUR{J2#j`Wx%K@5r<{HZ(w@ZT^_dUPLZe+3IjTM>QQ8uM~yFs7R zxc}{T{}Qf~D`+U8tFiinRpg-UROd)hhS`Uz_?tDqUmVHHz3)eHk@aki0J)&9*{CWA zz-}9eNuzHHo(~|pf42tAisj4n63eX?0@7)e3=X!|VadTbJ?&H%xE zU;JeriG3zxs>xL87CG2#r_C)VL_}cxL@h{*AbF1Ldv`(Nl3IbfZib)>$x&;pmE26H zbA5WKx0bQCHBL%^q8fXk_kIRnPD;W_m2x$XB|w)ECiWI+?k%Ix=d{;D^6`o)mO_7d zvGMJ_$G^oHki4JzpS61nw}m1WAoB*ocDM-ncMU@!zUM6M74?4s5w*#uqJwpM*0vEB zL-N-1H5B8SqTNNYJ}=MMIvkmCF5Z9EhG=NO{HX6lj)_52^fmPG&zvmA;{jo&Vc2z` z#tseQ&vgk&+R21$@7qh$B8vv!5bqMn-1upb)HHG&!zc7%SY|`hs*t?$m92=4O`^?3 zdw+`w%7@_8TNC-H@Ap_){jA`xcz7~Nn}sc=7yDnENbV3^2pz) z5uYxhLmoMGDKew?REeZ~T}no#%EAX=$xFM>RWh6c(n#~PRRM@t49)*b9Yn)sq|5I= zOO?L8)Od1xyN8LfHPO4EKAX;=Ep!W86b61JatL^v|?#Veg_QGaDF+USX};nO3L`|Y#LO0+J?XOT2~ z;AuaQU_`_{PC*u(u>v}BaUZ;wPlRiKFpdh=WQEROX%vahLwH6*fTzPz<49+$B5J^Q z*4)w&PuQVC2#%$iCv#kDlXOwEMZWix0D)3mn*1K_en-M`W{GAWpKYBIh| z1rcji#?eGH`V0FK(0;E z`tPvhohXXc$ZBuKJCo6*<_zw*P~nvE%$_?GW_t?5L@|Gf@pA}M(gHNa*A|7>vi;_I zIpQCK!Z-e`TV)z%b87(W!SgH^(&lV$?voIwpNHcmnJ^*S()VDuTD=Un@M$jWg9Qe8 zI{O6qC6lySF(9en)g?~o!M@?gV>smp*M$2td1tXmES>U|AA$qFlA_Z71u?L3tFQFL z116M5MUa8`korDjsSc-`hO0w36DPRQj0PnxEAl%+Oe8EIE$NF1qY>tB<1`>t7>|4i9G`iXH;O<~`I-c73er*5OVEjy@r)a{e zYlrVs&}+Y?JKqaEI2gn%(9B<9NO+N40iRK3>Nym16{fo|~2 z;(L6F*_x%<4aOG?3FaT2{zIo^o3e3ubF$VRaRW$Lt6dx{LQMei9sH#I5f@ zq<(Q+rK|MUk=ThB>qw7pyQBRT&iS1Fx>Q(oh(~#IbRPcJpF@S0^*%fVoJAame54lN%_^V{+NZmeW=fq^v zeQBnG)gomB@|cnc&Jes87#)Nr_Xr>9V-`~_60-~6s%I4R8creoJ;1yDqn z#j3w+Vm^SXIP*v^6Uwf*&})06J!;VOdo30v?srd79uxNrD?2^iOuS(vU7z)Hf3b%) zd8-rEaplFPNQg9Fy04_yJLu=-ID;;3XRpLzt=IC~mic-R-jg&)IPDdOPIuqa%lgrX z>iGd(X79k>pNw+I)rh2j!`t-E_@Ppe!L#D z<*hQN%nF2i__Q%0 zpf5T!yI5kLQS@^Xajq2lSq?Xi+wy%cG~yKVO>%_l?_hR3=x1GXJm5l=UUb0Z!O(9u zGHo`O?ikyYDfiP<58vB%Apt&7E(Pgin?w1sVsasVc)#!`SJ%m@jt|;wZW3qjQLwm4 z8w-(g_W%jQTDIqi;}Ty^`UDAr6R=f?r@~@%a!hF2e4eA@LYPa7;%M5BPIsW6w8yoRPaFcgS0>@xj+y0>&J>ou_dJvynNN6&5UxAg9G zj;3RT97#ZP;woG!QNO~053*^zUn`eMnP^9l?G$@|wzM>V42m|Aebz|J&1&$m7)s?L z%>UOyk$HM{w&^VzBVF%ve;E&#-gA*b!SBDR6Jc;)^@&(z5r>j5x8hTw6Y6|_68jWF zPa~2)t0Gk%s>G}m1%He|K?c6adi(pab#uSA_6sMBON7tl=TdC;TW2#>&*5x}={ocy zHn2M8(wz#0SPS&uVj_FC7+}VB<$j7pqt}<8eAP_wu^cr2ZHoF*PkfEu{Yw!#cp%qP z!9W}xrR8!rTkpI4H2l@0M6iD>LH^a_Pd?1U!TWVirSe5B4?%6#R=i8SJ(k{Bs!RQx zaTWvdb=cQ4nn0l5rCw7w)3)&@`S*ds>}QeJp;}?qaew06|F{2t%MZHZ9|daC%6Jrm zu=K*2Vl&c8z=rt)E4F|NFB>|qiAA$w&C{%>+Rxo=`AO92bGB#PFo8t1uX6_7uLE`j Nc^PHtN=cKT{{h#1pFaQq literal 6266 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 A{r~^~ diff --git a/img/crawler_parafii_general.png b/img/crawler_parafii_general.png index c70550fab60fb90e6c9550159dfc03bfe6cb5d20..cf86fffc93adb5e0a7b01fada1dfa3953e1391a2 100644 GIT binary patch literal 11620 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 Ku3Yw2@P7m08SUx- literal 14339 zcmdtJRahKd(*-(6a1z|z-QC^YA-D$!?(XjH5D4z>?rtHtYjA=EKh67p7w7KWpND5= znCa>6y=&L5TD59Tgpz_JA{-7J2n0fumJ(9|fxrfU|C?Z-fM?RkPtxJitJi*;v4b(9Y8G;?TQL5J)(z*shMNAP^BqT1;5Yef2!Y z%^Pj#c|_2wCC!ogmZa-}f&O+j>y|=Aq;#GR4LP|W&|eGm3MYvE2@P31a^8zkMiLwh zoEphfR?4wW_V7WnKSS5m!kkff^~SgB@2;)g#N;}2o{xE6fj<#U;I^Z=&lg1y-Cb4U zVUx0M9J?cfTQx0@g!F3~?ET`?*`2o)2{Y|Qpn*U$4=TmmQcvWMP?g=kx`6c0+_5K?M63Oh?vQM6HVq; zrXdTcSd~RB5>t^mtH$)nQsE>GJ(i4kMCcbVhriY6XSs8tdp^@CTi}nuLV{DLfkSLyAglRL4@0 zRf7I&?x%BwcaLZ6CY%sAUPxi2;1^wL)`STi%V4kF7p)${Kq45DSKSP3MHK=PNes6* zKb+CZrLsBeR(1@sP~iI)Qz>z>rKWr;8?Y|+8;ZAl^sKw&e|IMJU`&S;hBaz)1e?-f zOp0o|W4k8SKhYrPfl)z4Css^fzk{ceN*h58Ob?57zrO2AEG#UV3EWY?!v7_)dX8hl zv~QNsgx`vGSy2Eg9_yJMi`!X9Z7a67WfmvX5n~2L|7KNm{rzW|J{{L$%xKY(YinN zQP(tJ?ALwJ^rPvZFqxrTJwFRU152v0IiG~b_emz-|Jk{ek_ib0$*{5$Nf8Fj1f4~U zpoWA|L(1E{Q4Dn*i*-fm^PJXcZr+EHMK)R3PNu)W3XeucB1%BY9jkpU+B}y z&PW?eAwdc|k^A(qK?18BdL&cW#^n*NlGp}cgCEB#MndbZJ2vhjNck~&`z?E>#LCRR zF38{7#B}}+VFdck*vencWK_oXbyN7$em_QYz0b0W0%nzFp0r8)M%u<_R>hg2#V@4W z1(xW88bN-EL$c${c~mwjA3A$N_Hj`rhS1r%>RZT9*(M&paUe;08^XoT9VBbb0=L0@ zW7SAu`-qtj`DV2KkZt|X1rm)z)dYf3{;$c_G|{A#@(*_@tj z%*7a|3hiGC7X~$8sEccE7uesD#7ht{NcUXdjDvC5Y|5WD64_6nS$mY-F1QQ8l{y~0 zB%Aryt&_|EGZIsVW+3{+kN07_KEm<(92#r12sV6osdqT_9UNJ!KglG4COYzEJ@lTb z)L<<7KJi4y$AS|AxBm%rd$~a%pm8~=pOq>NxFA_P{mxI`HcE2xI{LLQ)R>IoKcseE zD)lO$m@-r_jzp&QR9w&bBT-;SMZ#?_Xjl5cMVM3O?C0)4}mR5Cr7a zpjTx<_ik-rf|8-X7_U4{J=?zv)0Jy51hqHO?Dg&>$=uucR(h}OPTyDQHpDc+R2Kdu zfCkwtZIV*yHxfmnO@9H6S9eJ+7e3G~*@z0A(`daODIj3aYA*>Nwk)pARyxoh#Km}F znIPb=vZ*-kUqOQ~kUbE;y5fmAI@Zs3N`Ker)Dr##l3frik`7AK1_qbh6PIh`htCfo zC`ilG_zlv}&j63#7o$X!p+I3uCcNDd-?almT6zo)WZpm?$PAT}72Rl`<7t_Z47hSM zHg?()-M8ir2Ke&o5d>_0z1OFXt;z0gjhliZ>&1K{RdrBm;mC{*_!=TBFW%>yz8;0L zsMKn9L7u~fN5RZz1m7*ks~XkRe~?-29&5s~9T#?`($dl=E3*?;=e=(yug`Vm8y8GH z>!mdZ>yP$}rYzc<-bbnvftMOOfZbVoxOY@7a22xQ*y9KUCGW1UIZD129_-EdDm@VL zT$d6a#tA<6B|dGk*zbp(gflnLVfK?O?wgwXIwR<&;zP&2^s*TKV{@{x$!@>ghLsh% z0W%L9FcQG^)UH~ilZx@dvWQTu&49>+{yLqFsH*y0QhYyymuIM&#$Zr#Psp*jyJJ+B zE#Ne#(%>K%HI-UAED)`Vih6D(Hz~?~Z`8?idNY*D4;`BUR{9zy-?ZNC^ggFjIdss$ zOuC0s_M1b8g8U*JmyKgqrx11^WRk+|Fh7bcYLAqy%8dvKO+?ER}(y)7> z>g*Nmme?sI%)I>l(Tljc%PDcwU+fyKO1^XkZP>3~EnzD*hvY{JON@&)=3N~v8trbj z7f&ATCTQY){sQ>PvFA7tAQ{cmX#9@2eD4+GvzDTUWKWlJ7SQ;0(vRiVI}lAWZNRU$ zI$%7KV4y5|Mv(0>odB9ukF3T$GkOTSjI@HE*4<}awPsI zn>k(n=>Sn@yoh18cX{JM43!CPP$nY1xyu@=wL74_wIg$j2Q3 zoR|5sc@E1xX2>5Kn^w~<-*QM30K@gyrSNSEX^z&r7V9Bv22R!N{VXTvf7I zQRL3Jp5`CH(E{75ZC^G7TFjuM=;`sPRGlV81FUq5PQQwRlCr|JV?d?NnA+vxt&j$^ zxMN?6+kCc!2w}ONAKLCRLcF-NRQ~j&vv@$u`IRA9y!<^_S55H!gmTg9PUUM$X-O>p zqU0;(egT|Nl}1rzCTUm?&qY_8mHpP|%=3wi0fR0)6cu)VHC1&%X5poTDWGF*&*=+d_$ICAA`Ip!kU1){^Fqo4pE-U8!Cl;c$k zzBju~vBncVxF(2aS_*Na6xw7pyjZfSGu8${te9M3)H<^fqaj=5WQrDcVJ)|io?_oJaM<#L`~(Tv5K3eB zP36DH6UZD7+5fIy!)R?slSSiKWCp z@FxUWh#pBDj_J>hbQMs23sD?P;tktuVwKxmseiQ6Q@y^q3CPQf zyJ-N{-R!PC$7ZKstIlhWQ@2L>%NO{GG|sf>-cyPP^Jr#2zb%CRKL-b}jEss$b!8%@ z$G7wwb-;~D;B|jvhg)MOeqg^=%24dV&$}|P^&TAJ(q}Q+&*S6SxKRh0Lw5Oxau2W-RZgf7}Ji4TIe&sG*)vp*LqNc# z=svUTXEp$WCZ-ZYqOx)s7u!P$n~GltM^XwPg;US0?nm%Jf-_prUGtftL!=hi;NA@f zmTLguRqAi+kqq`V^7l04@Jboib6Y$k^K!-TYFeky8+-rFjD-;ZW=W%R;k`Ff8ez_S z*B$tQMBzu;2zjCL!SB17^|=)+M|1TA8{dNDcAft;|F?=j`80XMv&qVxA&rMJVoHG^ zoV>LlMOV;KV78wvfnqP}_`+Tz`vISchj&@(;P!qa=%{ttf66^7le1ND%eKmQimu#- z@V3(`Jg9Y_c{Nq(g%wZz50Fo@poI`#2_)r|di0Z{(B@i>X@%GSCWaKDOB&R5Ju@BY zFU`01?E{PfNyxenK5EuU=@FPOCHGVh;AuK4e&wAeMY8Pr>o5s^kqub0gr;=r=?|a} z9u;gj8d->ZN>1CQW)^hWP+lHlnV~TzW)Q6vqcZZJgM^Qr=|0khN?wgKUO(N+g$Dk& zs(jsTEUd(^1w}F|r`X?1Y+xYj?d9T!UK6-Ea%TTK4{+*wk<`WhlzVsVgk(hK_^HQl zWOxIkcN^HKq|yU-Pf{PIFj7J=OHzR_u2I-@;=#6)Rqj@FqZ3})Uzzm(7bPQ&4U0dA z`&BvQ%Z~g1oC$`)bOlQ&m*_-W&0jZytja`e=GHXPeInRslmZ2boCJw{@i(gS=0pD} z^wKQ=+==E*LhIIlurRw9O*)Za|1p z7@mQ@(1>UU{qjIEM?72>2i?zz%Su zON8AOU{`pvpaR?v^UYKM7*+7e{~7euVRQLqo4`NS6dMS9NHe@&LGIxH;Ci!vedh#o z2fG5*X3%|Lu3d3M8W6nydfBB@Nq628iF5A9MhFD?XMhsfoBibevu~%A97KHj(`xF| zTZsRE$7dTp3;HVaDExQWQafxx|EEF{CpEAl38{);$+E8xL&yUOdFQo1b;3RU%=?Z! zpJ@_DGF2bsy*fARBvyA7*3kPLbk@wCzHzum&-tF`u1Ht&f~X8w8?Z$MZ%-b5tqT6*fw7|tX3_Q32g{RlI3&~#d-^F01SmBM!9^gV0y zP40+m>FxTdm)C98DV@s%H1<|>UQ*yt3GP4jwfQJRAxb>MD%T*lDJzHVhU_|<*={8l zA+ShFp_e6)tmDf<`g+3?Lp1DQ^0)AU=qu*2HyV^9rg^(!hno*?YmFEa_c#3{u%G7m&fR4m}7fsvYl99WmBYeLYV9sV5W=gA+w}m@L7opB8OuTv?G8;%cw;#gOn8> zK9IvsFiAXGY8W>i6d@aqCaq;L9&ujnC0i{%exYS0;G0PKqg9~B69(`$@)JlXsUgS} zqKZ_}e5fYi6H2BzEU{AIc&55lTp^@#a+2QSB$PTTi>J^F-=HIigptH324_pnen`Pl z&detw3m5(-R5WbNy&H2MrpZ3VZn`xMmY+k?Ar+C7{rNE_G*RpTB{H$tBR-S;$AZZQ z-W75!`o2Y-`xL$6lqN&75v5aIx!qyWxjF@DG@xW&M-$bKlDoBulLoA`&Fx{_5BWPy z124B9nVoc+!85g_l1XHqMH4c$aT0|IFw~Era^^pgA{e?44l(M^=z_|}601&GkOiO^ z>r5hjm0wQzW0mgL;Kv>!GmxBLsx?juPevmH)`X4;)1(mQ%=_u**PnGNuXJzI0%FpY7HYQ?e4m;*O}iN(V489uUVJB}#L4I$55k1@BMt3P(vD2Xm2 zC(SN+v-Bt*XXvAeho_utfRV=fuyP~90$d~&d=vs7t!x5X{A52{B}L&Pr)h}z4opX? z)^(~0_Mj2*Y#p35w&@pA)n)&NmvCPfq=^wxkBbyD^+5Rx0$Bpny z*0Va~=UhbPntKGoI}GQb62(Ef6r^e12y<-HzAb}lSH9N@9SagnkIh$8TcSqDHK`ae zaYw(5qcp%##Bi9=BBDDczSn=I(E%sPy2U|B%}-6Y4ABa=g}cp_j1*h9yii%OB8tZ| z&|x5l>6bPgB=6*O#X<}Y#$v&*kS?AN(qQ77$^3!2!Zs!Z7i&!Bv#iEU+VHEZ0~*7v(9|DSx~T>Q}6RY!lh)bV}iRxg5N|PsV1q zf&8{oPkPqRy^ON!a5LRf?pa7v86WQCn@iiekJK8fQ^M`%HE?1`?W+WPI#LFkR z0Ors;Yd`UzVfuJ_ug`-cLq=N{Ra9D~QthW3J#Ls@ZnhF4B77&m>;gqXqQF2LuaCUt ziNgIez-h^a@XDU_)41Z|(?joAzvKtJSbUC&$2{v1MWK=4qY ztDh$F#K<`2#+(Tdmqm*Sua7<+*HUAdVY`FWI9z9u%`d=-i$?-T=UkP78nFV&XQ)RP`-)KPrNH`+Rt>Cg$zt^)83+ES;@U{YS5u$X0EzmMiFEUwuFz zrt9;*^!p1cG2QO){r!FCk=J$`WP$8k474Oz%$Yp#77no5p%Kz28M3o`vGpD|XwAZY zW|w}c$xIG{7CU`O6%`auH=DqXHO~Hl1yrYE#r{skVldGC`D)<9aCdB8_d5>g>aEpC z>uw^E(j1!x1%r5I-bv4sO$A14B2m@35+8M>fMvI{V2Lv01eHa`TOAi-)Mf?I~t=9+z zo6Rbmfgdx(z*c7PYe&nE(+UWC%Pj@xi#bf_hYO*-!|(HYc4M43bCoX8M|Yi_o!3*E zPFFpbnj-4zo%4_Cjeln8MS0)3J<#rO*hS-(puj;q&gY1Vc6MwCHX+t?%E$8!f+91y z5^96wFP*NKfA^>2zGuDpZ{&u5F@OI8Qfl!f(&4NOH?r%57gvtY&fb5ayD*}QeQ6@h z@w$Ij98xN7?@9$lh=7~c*HX<^`|h;MBZspo2Ad9$in(Alp#)h+lqjDjI|R$#PNv|Q z!t8SI&JQ`k*sN?mc3amFl^m!Q>xv(_8VLH?=(NB&S;&K#Af)wA7uwJ5mMT{eOy|8q zyLRA1-`kEP#~qotD`|py1G;!;Dc!k@O$fMVoUXlL`WdnZ{-8>NKy}Pt;^UDnU--`1 z7v}9|siFyfp=Q15MuY}b%~o6*YSE=4JRgi^;ClQ$RQ$6R;zXrh+`PSKhEzEJDLxJ17paBxk5K(TG_dJpGDnS%@Ixak>FjbiMHxQAr*BG6owC zRI5c-s#C}j`_@FbR9I6WRhQ^qW=NdPcaI4;B^rYcIB`kbJ1vhu_wn_r(CvxfuePb5 z>1;I_sVGI`yE8c>4u6cPTy3<&GJ2}$V0qfj5f7$J9+u{C3_q*m5-H&j! z!o{~R{DiXohEC}o+roUn0F=)yFFfef>vYZQ+vduD23#YWnQ3^oM3(hzt%-fWSF@mB z83<>k<&m@rJIfu`@HQN{pnM}kTJPsYJhd`?c#slpK63ZVttcCuP09{m69mpjFuS^M z?jIS!EQx)OdG%_BU3n3b)gd2hH#%YRomd-x({NM~w|-3?OT^$p zY}4dan6+1Q_@54t4am31BiTLFquO_5!|O|M%Odo7mYV3=u)0#My)q=5O{P(gZO!N2 zcY(ZEVjmvE;bdkk?n9r-f7f5nR_d@3vzq&>zvC*E_@b6QejOVrU zb+%H5hcNgag?-r*Q!pe0x2D}`stx&I6(!uY_QU!Vghr(X$!@hI`6#1)JyT|Kyvjo~ zzUK!QNH?dX>b@41yiA`2RHQ<%E)ITmf?R##?4?Xk-{nHSNnkF9ErnI z6H&-hfTuik>>S3T$;O4zL{5%S zm+OG6xZ_i``t>Bs(!OkiTkkC#6dF`bb8k%@OSPA7l9=xL4 z`mFM$;p|mitKTJq{%r5e2eASidZ+1Bm}G zRo#Aw0~Ls_EJ;%21addy=>e%Xj;*HK-TS)7%$?nxBo+_8FMe(z*~Co-q(hUMQ(Yn91MU zkmb%NSv2ZwLVlho!j|vr?S$9Y&6FFrl=r*>o!^*eJBVLP++&qpQm;VQe~U*&=UoJ= zZmfous6olb1_Ivjb~ReXU%r@rw19u>EQmiqi~VSKxtTPbpI zg2itec`8sGK7ncEwoJ&c2nphA^}{s6oc`fGR6ZWB3^WERc$l)L(yt#mLGRdk6&4l9 z!pYZY2Pqz&Y@x4U*$Q1*=4EaRAbSX*Zpy0;uM^0BS6d|xFKSdT-afO%;{5;qx$oW7 zq#B)04`_AxV&XuljTlJIY!|(>IUL$xdAfdw?bryo%X%PwTBTPjQ-ixZ0Vv>XUO#N0 zF_u1Mezxg`RwRodJYnwQuze+MI&&EI*DQ*+ro(ZHqYUIe z@8oxR^q?4TYRx)AMGGcFn1OhL$fKd`%hC=p$zPo2GcEvPo3h!d;0{Hh%W*2iRjW2R zeyh}Of$tX3a6Vr~1L)i78P4y#{{J9x!Et|!0X@q4zt*0{J$tKFPYd#UPO-4qU99MR zi6t89F3L7JRKpAdiFv(Kzo|hC&)@LVs(sup*Cl#v>1V4|6%TU88gw^2&_RhS1Y8Rc~z+KDdHdRVd@W zfXGOO{`5i%jeSkUhg0b0&>E7yU!O)M!i1V z%Snew`wes9a38F&4>M;%?@g}MI)9I9_k;+N@Cj!|?GaK@Vd>WHgd5m=!2%)qoMTu) z-%BnZ(AKV;SuT2@eZ~{WNHIWvjg1(w!aga&W_3vAi%~P%CNKQGrm2|Rr0ZrTqrhFY z5MhTX@~{c9TsR5)Z6+%_c@WD)<_F18MqEvv<9!~gdz-7zp*@!z{Go3&*uW;ZNiLS4 z6^LRceZ&U#+U9KZZ9LNDS?lB)&IBQ{VDy(H8f>Prax#4vJL#RB@d^IDcjxvDVjSKV z;hWx7tY1B6f6|j`T&vrT ziU9c+$5{Q)ow7}5mK{Y*k5#3#@KP=KxOVta(fu6gh;Xr1oT8qWFpXp+DwU2`X zY&z?!e52h4)14D~Pt|7Vb~pZ9gDm_@yC<#0=kti3xVO`c^V7YUt<-5pomQX$X1wNeDg(dm{{_&->*`Q&pyzKP@u`zCktnrB`nktsFKQQcQ506OxaqimF$u0 zrnyV5q?ao{Cx_i*BLwf)?{o%Fhys}n{vGdGqFyHBBR2`87S(jt1JhNf$gXd6fd+oh zWk{k`I)R=OdDRoS6yc|Tz7>5@<&rJ0K2mJCoNzfYnGE+GA7#EgjflzBY5>q;F@Qh~ zOBC>!>9Ymb+P1>-=!EvntCRr*)M%$7pTYm`Wd@{e=5LcqXf(QLA6Qv=;rG?`_0SP3 zWuaqJCICEOK>wT;9VeenaW;J)L{mNa%xB*9%e0C@Csi7#WaCb?jw1?k8xki?=Xb^P z&^Fz>Fx&5Zpg#=vd+OB4(jHTb4%=z@XgUS|@#a854-Qc>r2aipY>tEx3{(vWTR>Er z#pyS!gcX>(yC{ZDo_|8Z`*8I@`Xan(V;bE>SKYVw~V_Jz#a9N9ddK*?HxKGJNG z)ZbICCzFiKuJZ_or$?8W6tS=Wo;fVCfEsWnHf#fsd$8>z9<_tp@vPOlJ}Z-v z4YCpv8bArHv>vf_IGq-cjVyfupd`q@g~B_&TGXjqXBVxeX)Uh)*Pb{=&E$<%F>!b& z0(Z3nPkq^HbLTOt=*s+%{mC{X&<>9ke(e0&YA1lf@J$r86@)Q?+@oOlFa8KpV+i?%do{Ycuw0*;WUB0TE7Vr zwJKdG&FW2|xyTyJX1lvQ-n#9Ml;w`culwT}_=2zXU|a9E&~A7XiU#4QoOUJ)<&Qu~ z79{EO^A%#zBY5Z3dI)HbVqvVaZ$wV`4LaTNb_0bG5Idw~WctTU{C?;T(R{=h5Ou}p zXV>rIV*kX^sI(vfY!WhN+W+e1#;O((9uw17U3Kbkd4aE1se-?#UmZ0#C|3FP2EMba zsucx07W`8b5%cxdR=oy$bR%E8LR+MI?e{$$fE1c5*TW=RMXj@VE_QB{8vu%0KtZ8g zsKGyFg%{^bT5aU42tLQC-kceT;JNb6bZBV>3aFZo!|OL4Nfo2BYo^SdLjUzA4*eZ9K56HbvS0s{d}|8q1W&3@8CWuWK(VR(+OB&l=;VZo5yDHsIUF+d;w zM>$PDX+fRGbDwh{V}Zjf&T{=85}=#<_oQ>ZG{?H!euMPdyADu5F<86>g1(AX>rA#{ zewAjtiFc0XO!J?*yS^^62_2C9nF`J}*v4FuR$o$lr(jcorp2$8n?GGr&{ z_a!wuI{o<}Avrr30M5iOj#vVom-Hnt*6IUN6HUidayYDztR=Cc0PUmk@{gV(j_@;( z*Ymu&`n2!BL5FgA;Z7C`e>C<${%l6h?r0JZKj}p2!HjrFjKxN8E9Ej8?L0mB(eZyc z>&c+yEa98dxQ<3cFv4|Nbz0rK6ML^qvMBstA<;Smm;wc))vv(emSLj9g8Xp>YAe*mx zSqH!cE;j)@zv_Q@X0n*#Z7f4dE#Ht{Uc8xV?IhLc48ZlCqer5t2Nv+R%JfjZ?++A# z97_gB5<1xnIG+%60=4rPB`VBa*lVx>El_B5ZY%)u`UVC9sZpW!Hp&cs7zw$Q`63=K zfIWZC6^aSq6wYKYQ*jsl@A=? z0M0wBkiRIAij0s=Q)UfjNfmu9F+YBhL0#{3!F==WuGLXZ9h6053_hNXQ9}C!z{hZ& z4uK5^)XmTRt(;H07hPEU(`!ABQb_>_;Wj(h)qz?=YdH_M^{oN{GHfdU#D`ra|3~dKN!U9ovB&8;Mb$ zsB^Pz1GZ+g(nY4#kRvN+n)2KA-@j-CX&NwX6YKvkvE;O_R)-_D2E%)RmwcBMmQHE~#^Ya1 zp(!53T8~$nN`U)=2#b?{l(#Q;;QM2R9>>&Hmt00kQ?T2Pz!OWGI1wC8It|+LQXigA z`5r~p2SU{v?raW++`7X`h+nwrF9`>5FQDsb7VI9DeY{&xUaZjjlw$z<6U?iR`{@CU z>?g(N$LA}7INu0MOZ5uc!0Q z;1!>0a6;+$pAd%Y2{DLv9kEV+StAH_T6 z%7VRDcOJ~JSR7wh8igr4U5@N$F&&Qj7e}pGtkoV5&u_ICp6pJM!_&atDZq{pL zA7fL@a7${8-r8b_P4so1-au;1;4Gc;YKKBzNB>m`=>NB!RO4`TFTX#YvqViN_|}cs zVz=R+XTag^?pdH$l55X}2N146AVQ z%8l?~yAVO62Kh?ur^(cs)Ei!3MZgo2lIHm3jZs&u@DvMl#C4d}dJPnU4Mp5u7rqWJ zl(!r1%AN3mp%l3#HNkoK{Qe4lxM=@t;?io+I5|cbjhu-n7wnK;D|Vh7jx>Wg8?h^z zxv-w1VtMth1Bt)^u}B83|FKpon&5X7)HC+poYUUA2MbTv&nl*bzw25ZB(H_zC~>oE zjPwA+nr^k~)nbo6&w3xMC+wDZ*z6n4x-3G-`&uQScSdIbIDp|G_e>1$#aHIcIS_)6OmjK)j%C;F_#p`r;*`?KKt#JTkv zzv*~VH8G$r<8t6Z`#3h!W7|K?FKOAEM{M;APAIB5C%4UYtK9>?>j`nFv@R*Ht+@gP zwc1i!Vd810$Po3lg1s&aAu^k!mg{bQI0G_}?)0@xN-Kzko!A3Vh~sn5@*PCy@qKA1 zj&VGsV9!7UH_itbS>@G(%{Ieay85|t!n^=Hw4TAt!hUN3mcu&u4IFM?hLx0KZ z0AgWKAX@T4VJd+>%Z_KlaCPuUI+K~eXWRDxs8{SCGIy&prX6}t0)n#XWE85J@Di6E z>A3?j1r2#NX9RZID#RkFZF%nTy z?9lkc0yQdAjeRvKZGC-)n`xy~RWlXO5~uKHU4;AivfnWoK!If2W(^hW`sK-kK)@)< zoacJny!Iy(5I1<(MME6PYkigsuI~R1QW667%D?YZ9BS2CaD`!aA|0uSN-f$-!-VMt zMER~}XT0troR~DioyX~rNfb%z#byy$^x~#u6LRMG%DQVOv8~jJ8kxwKnr@X`6x6kY zs)Kj9Zte1_OhRDy6Mh9QBML_20cF%uVwM&}$69?nv`%qXwCit48gFL98TU?13#a(pB? zxG>OVbsaUms$IiZQfEcv6Fz>;3-+e_QRz}5v=tDNwi@GxrwDnMirtiItWEJ;)FjV1 zJkK7hWa`3#73K4*T_EV1uUs)WzN^9D_}%@J!Fbg7j<>`PlLNJxc=D4IM1YPGWhD@{ zAB=A^dL7j;kLRw@Zw-*PFwnQ}_}yLbdUwKbqHXK1%Ym<%z=B;%m(lxop+O+#Fu{jJ z&9XzJT;AgMgS&0jn#5g&$?{j$ZF{c#@|Wx%h~VWrO~RK(AoYdT0CW?zYd|S_Yl&qYs$iywYo7v9K-B* z4pk!KpX4XCYd{;;PtW`d6*G6pglwdg#ORtiHk<~0Li+GY&T!=fHX)%Lr4xa#pl$(0 zL44q^3Eo6P;Q5DE0!@_ui?aC0ynie?by9)+aDysiqd#U|>5&aYKnShL&X`upg}ZCy zutH5KGwQl7p!-3x%?CHUNj;ydM-Ue&KqrI=C?XZH=0=XEJ+=;X_3uC?MvZ9WEx7dL zM`iI`X6bwL=L#O&NOn+UXY?$_+5Ka*SZp zsEE*yAG;BK=u1E3BEZxC=bLa$jFeD+cY=I5c0iCB`VQS$5-Mi^;Y0!aTn{8It{_$| IVi@@U062XBQ2+n{ diff --git a/img/crawler_url.png b/img/crawler_url.png index c18ccc892a19cac711a5c37d38e3d97ee75c3a8a..a646a1453e634c46b2898a25c40d47046ec64390 100644 GIT binary patch literal 11880 zcmdsdWmH|uvM!q7EC_DFLvRm)APW`{65QS03GNOH3$8&I3GVJraF+yk2|p&w!s-;rq03 zaFlRT5U{eF?m>o$8{WW=UhD`K&>|uF;bG?Lp)HuuRm=FXp&7{)6~z4>N{LDZQcnkw zC9Ssgub&9jS8*L7#ewuWQxDT05V(F7HeI?F|2``%It(XRo!{hg+f5TGBN?5j+0&2y zbvq|iOVVOLFIb<|NZdpwEF>_WYw9(WADsc20}V;pj8ze6A&=QC2A;P6(`Cia z)$=EA-8~lU7eGWjtzl+9fJivA+hQXRa;DIaYL)~~yTLgd3vofnk>evQVIu6#yVS@E zq2QTy1hDBH$WshuJ==DTc*o3{VBWD-!#R zfC7I?ahw;aR1*FoN}ybk7@mD#{_f7H)L(dz3}kLvSD+DU1|FY_`$`LQd$FXd8N zzVqYf%p!(;4j@ir!h@V5HOlP}5OEk_;l7fx%tYvBFe$&qT5NPiEEPCox6)xE80lL1 z!D_VG(`d@_=4)5iP(%RHT8=*Q8m$Nz;}ru-mIRnv?hMWBW4MlPe(YX-&Gu{dNJU5k zs~%sd!xUj^X<2ptXM?GxEg~Todc*IL7ImM*m>61G7@#;5XsRGt1iT*mfXNdJ1u$r( z-4~l}OvmkR7yd(1sUHS$_3E6k92IrUI}=9jMkflM-@Khe$!x2wefW>>yaN`m(O@EL zxNbL_mHg$}!9|S2gkxE~5oV9s@58G0PE+G0V;LM2r^^+G8K5tPeR}-8Z5wC?|U{|dCMCC%}o(jvQPk5I2P%qbT0UPQYi6}ZS!en+azQWiqA zz*CyXf0a-;m2DGW1j=Dh|BA%R&mvi?iMcvnNJv|~P&-0Ap!5|IuS%}c8nV$HicK}U zQs6F-F5rlep*bs2-zJu*9?`JLq^@iNjkCaKv&ru%eXKZE=QfMOZM~71U+t%|YjHcq z_&mhBHrNYyw_No3L@K33latUfnV&{$w8dPtne5Z{K=fU3xWVa7B7?#_)W zyJb#`6%EJ) zAK|Q$#{#FqgY5wn6KeNlmxb(Klzx9h*538XEJ9~HRig46H25xOI|yw zJ#&1VME2$5E(+*=aE)9k*M3K;>#2Qw-2MEW&zXE!9tzZ$pBlzF+~6}~Xgr#PC>8%r z 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

Zd`qD~Sgq!-!!Hw* z>4I6f{fydt(%i(*PG$LgC)QuHOzq?}!EC8^{YB0wBW!+I&vR_Und7Htwv_pzsr2?o z6`X7_M35mr{2Y~;o+9n`xZ_Ojf9u|P++6I6h9{~Y{>n2G{#aMfI@sBy1oP=f67b@{ zOmrJ@Aqjc0Q<7zrD|736j(qiz>G+3DOmRkj%mIthMy>EqnIp`th}%ITL1&w&(~NX) z?Mi@@ixFCCIPu_f@D3I794PzVdFjRzep&m}3y+IlZ_svhUcXJt53Gc@D^}1sQ88ga^Wt}wVYVF3$;U~@s!+?za0(}mA+ab}J&+fYx z5>f?9IgTxy8Yu$(%=_BiOfkAB(HVaxQ|Gjd!OL5$)YJH${rY}dCkrx~zxwBEszO5P z&*0N$`tqL9fC$ojerB+ff2cbO+u^k@uf9!cX_fF>&|K zB+k?*QLzcwWtpe)MyH9>)J(Ic2^Ms1nJ(kYsV@NTvCjGnnci!WG~veO)N$32$nh=Gb*>ZY=ica)-owu$5gtT%YE1=)}!x>jLJ(j1f@m)qN z7Cwjc_4TC-7H~dR4SnxuLL%WOHy?y(I@2;K&JBLg#A+7yxOs5hd2Y91_c9|+%9nc+ zmK|kmnfYGR{G00p{rUMnkc-Px7RFcM6MaDalCPJEB@Ru6*>!4R0Vjdk|E~X1GAq`! zzy^LMcqQtb-VVmLPv6>}-9$=0(qGwxW{s^K*l~|<{>6n8#rhY-w`{i?lx3QHQ1u~a z|8`2XTh$BH2dbThKhMnNAtA(a41CUg4E+x=7U4}~w*t`g5G6Tz@I8rykznD0@e}e; z97ZA61QrWoEQf`}$lDa^hZxNQA>A5297ZaSX#B`~%7>#y^Zy84YGL8od-Pwc_7%4S q?hMk19n=E6wL`lpb2)zi?+9p^Q!^Lo*vjuIGC&EcCSNXV_VIt((-1BI diff --git a/img/crawler_url_trans.png b/img/crawler_url_trans.png index de6793057a4cebc5cddf2edd14a9472d050814b6..5e2fe50f152e2ad94ebd0235157759630611ea66 100644 GIT binary patch literal 12953 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 diff --git a/rozdzial_3.tex b/rozdzial_3.tex index afee95f..7470900 100644 --- a/rozdzial_3.tex +++ b/rozdzial_3.tex @@ -1,15 +1,18 @@ +\chapter{Podstawy teoretyczne} \chapter{Ekstrakcja godzin rozpoczęcia mszy świętych} \section{Ogólny zarys systemu} System zaczyna działanie od zebrania jak największej ilości danych (nazwa parafii, adres, diecezja itd.) o polskich parafiach ze strony deon.pl. Następnie odpytuje api Google'a w celu znalezienia adresów internetowych parafii. -Dla każdej parafii dla której udało się znaleźć adres url pobierane są wszystkie +Dla każdej parafii, dla której udało się znaleźć adres url, pobierane są wszystkie podstrony w odległości (sieć to graf) conajwyżej 3 od strony startowej. Z dużej liczby stron parafialnych, za pomocą prostych reguł wyodrębnione zostają -te na których z dużym prawdopodbieństwem znajdują się godziny mszy świętych. -Każda godzina wraz z kontekstem w jakim się znajduje trafia do \textit{systemu - crowdsourcing'owego}, gdzie jest annotowana jako poprawna lub niepoprawna godzina mszy świętej. +te, na których z dużym prawdopodbieństwem znajdują się godziny mszy świętych. +Ciągi znaków przypominające godziny mszy świętych zostają wydobyte ekstraktorem +o bardzo niskiej precyzji i bardzo wysokim \textit{recall}. +Każda godzina wraz z kontekstem w jakim się znajduje trafia do systemu + crowdsourcingowego, gdzie jest annotowana jako poprawna lub niepoprawna godzina mszy świętej. Do zannotowanych danych zostają dołączone poprawne godziny mszy świętych znalezione przez regułowy ekstraktor mszy świętych o bardzo wysokiej precyzji. Dodatkowo w celu wyrównania @@ -21,18 +24,16 @@ Finalny ekstraktor godzin mszy świętych utworzony zostaje z połączenia ekstraktora regułowego z ekstraktorem opartym na uczeniu maszynowym. % \bigskip -% \newpage \begin{figure}[tbh!] \center \includegraphics[width=1\hsize]{struktura_wyszukiwarki.png} -\caption{Struktura ekstraktora godzin mszy świętych.} +\caption{Architektura ekstraktora godzin mszy świętych.} \label{struktura_pic} \end{figure} \newpage \section{Zbieranie informacji o parafiach} - \begin{figure}[tbh!] \center \includegraphics[width=0.7\hsize]{crawler_adresow_trans.png} @@ -40,7 +41,7 @@ ekstraktora regułowego z ekstraktorem opartym na uczeniu maszynowym. \end{figure} Dane zostały zebrane z serwisu internetowego deon.pl, który zawiera 10130 parafii. Warto zauważyć, że deon.pl posiada większość polskich parafii, ponieważ według - danych statystycznych GUS z 2016 roku w Polsce było + danych statystycznych GUS\cite{gus} z 2016 roku w Polsce było 10255 parafii. Dla każdej parafii zebrano: @@ -52,12 +53,12 @@ Dla każdej parafii zebrano: \item nazwę dekanatu do którego należy, \item nazwę diecezji do której przynależy. \end{itemize} - Do wydobycia danych został użyty skrypt w pythonie, który korzystał z parsera - html z biblioteki BeautifulSoup. Przy wysyłaniu zapytań do serwisu deon.pl zastosowano - algorym \textit{Expotential Backoff} REF, który prezentuje się następująco: + Do wydobycia danych użyto skryptu w pythonie, który korzystał z parsera + html z biblioteki \textit{BeautifulSoup}\cite{beautiful_soup}. Przy wysyłaniu zapytań do serwisu deon.pl zastosowano + algorytm \textit{Expotential Backoff}\cite{expotential_backoff}, który prezentuje się następująco: \begin{enumerate} - \item Wyślij zapytanie do serwisu. - \item Jeśli zapytanie się powiodło wróć do punktu nr 1, jeśli nie poczekaj 1.5s i wyślij kolejne zapytanie. + \item Wyślij zapytanie do serwisu; + \item Jeśli zapytanie się powiodło wróć do punktu nr 1, jeśli nie poczekaj 1.5s i wyślij kolejne zapytanie; \item Jeśli zapytanie znów się nie powiodło odczekaj 2.25s i wyślij kolejne zapytanie \item W ogólności czekaj $1.5^t$ sekund zanim wyślesz kolejne zapytanie, gdzie @@ -67,7 +68,7 @@ Dla każdej parafii zebrano: zapobiega zbyt częstemu odpytywaniu serwisu kiedy ten nie daje sobie rady ze zbyt dużą liczbą zapytań. -\begin{table} +\begin{table}[H] \centering \def\arraystretch{1.1} \begin{tabular}{ l l l l l l } @@ -94,17 +95,17 @@ nazwy parafii, jej miejscowości i ulicy na której się znajduje. Wyszukiwarka zadowalające wyniki, jednak po kilkunastu zapytaniach blokowała adres ip. W dodatku w warunkach użytkowania serwisu i w robots.txt Google zabrania korzystania z pająków na ich wyszukiwarce. -DuckDuckGo nie blokowało adresu ip, ale zabraniało \textit{crawlowania} w robots.txt i słabo radziło sobie z polskimi +DuckDuckGo nie blokowało adresu ip, ale zabraniało crawlowania w robots.txt i słabo radziło sobie z polskimi zapytaniami. W obu przypadkach powyższa metoda stwarzała kolejny problem do -rozwiązania - z wielu wyników wyszukiwania trzeba było wybrać ten który zawierał +rozwiązania -- z wielu wyników wyszukiwania trzeba było wybrać ten, który zawierał adres url parafii. \subsubsection{Rozwiązanie} Po wieleokrotnych próbach poszukiwań znaleziono klucz do rozwiązania problemu wyszukiwania adresów url jakim jest -\textit{Google Places Api} REF. Serwis \textit{Text Search} REF pozwala na wyszukanie miejsca +\textit{Google Places Api}\cite{google_api}. Serwis \textit{Text Search}\cite{text_search} pozwala na wyszukanie miejsca danego obiektu na podstawie jego nazwy. Ponadto mając już wyszukany dany obiekt i jego -identyfikator można odpytać serwis \textit{Place Detail} REF, aby wyciągnąć więcej +identyfikator można odpytać serwis \textit{Place Detail}\cite{place_detail}, aby wyciągnąć więcej szczegółów o danym miejscu. Między innymi można otrzymać adres url danego obiektu. Jedynym minusem jest ograniczenie liczby zapytań do 1000 na 24 godziny. W @@ -135,11 +136,11 @@ Powyższą metodą udało się zebrać adresy url dla ok. 5600 parafii. -\section{\textit{Crawlowanie} stron parafialnych} +\section{Crawlowanie stron parafialnych} \begin{figure}[tbh] \center -\includegraphics[width=0.7\hsize]{crawler_parafii_general.png} +\includegraphics[width=0.7\hsize]{crawler_parafii_general_trans.png} \label{crawler_parafii_general_pic} \end{figure} Crawler został napisany przy użyciu biblioteki Scrapy. @@ -151,21 +152,21 @@ asynchronicznie wysłać wiele zapytań do serwera i odbierać wiele odpowiedzi \subsection{Komponenty pająka} \begin{description} - \item [Silnik] - odpowiada za kontrolę przepływu danych i komunikację między komponentami. - \item [Dyspozytor] - otrzymuje żądania od silnika, kolejkuje je i na + \item [Silnik] -- odpowiada za kontrolę przepływu danych i komunikację między komponentami. + \item [Dyspozytor] -- otrzymuje żądania od silnika, kolejkuje je i na prośbę silnika odsyła z powrotem. - \item [Downloader] - jego zadniem jest ściąganie stron parafialnych i + \item [Downloader] -- jego zadniem jest ściąganie stron parafialnych i przekazywanie ich silnikowi. - \item [Przetwarzacz danych] - zajmuje się końcową obróbką i zapisem danych. + \item [Przetwarzacz danych] -- zajmuje się końcową obróbką i zapisem danych. \item [Spider]\footnote{Użyto angielskiej nazwy, aby rozróżnić \textit{spider'a} (komponent pająka), od pająka (cały program odpowiedzialny za crawlowanie stron parafialnych).} - definuje sposób w jaki ściągać dane, między innymi jak parsować stronę i za jakimi linkami podążać. - \item [Spider middleware] - programy pośredniczące między silnkiem, a + \item [Spider middleware] -- programy pośredniczące między silnkiem, a spider'em. Odpowiedzialne są za dodatkowe przetwarzanie danych wyjściowych (dane parafialne i żądania) i wejściowych (odpowiedzi) spider'a. - \item [Downloader middleware] - programy pośredniczące między silnikiem, a + \item [Downloader middleware] -- programy pośredniczące między silnikiem, a downloader'em. Zajmują się dodatkowym przetwarzaniem danych wejściowych (żądań) i wyjściowych (odpowiedzi) downloader'a. @@ -174,7 +175,8 @@ asynchronicznie wysłać wiele zapytań do serwera i odbierać wiele odpowiedzi \subsection{Przepływ danych} Przepływ danych kontrolowany jest przez -silnik i prezentuje się następująco: +silnik i prezentuje się następująco\footnote{Diagram i opis wzorowany jest na + dokumentacji znajdującej się pod linkiem https://doc.scrapy.org/en/latest/topics/architecture.html}: \begin{figure}[tbh] \center @@ -201,7 +203,7 @@ silnik i prezentuje się następująco: trafią do silnika przechodzą przez spider middleware. Dodatkowo spider wysła żądania z nowymi stronami parafialnymi do pobrania. \item Silnik wysyła zebrane dane do przetwarzacza danych, który zapisuje je w - pliku jsonline REF. Następnie przekazuje nowe żądania do zakolejkowania + pliku jsonline\cite{jsonline}. Następnie przekazuje nowe żądania do zakolejkowania dyspozytorowi. \end{enumerate} % \vspace*{-20mm} @@ -210,13 +212,13 @@ silnik i prezentuje się następująco: \subsection{Sprawdzanie typu odpowiedzi} Podczas crawlowania ważne jest rozpoznawanie typu ściąganych danych. W przypadku crawlowania stron parafialnych interesują nas wyłącznie dane tekstowe. Należy -zatem zadbać o to aby nie pobierać danych binarnych takich jak np. video, audio +zatem zadbać o to, aby nie pobierać danych binarnych takich jak np. video, audio i obrazy. Scrapy obsługuje rozpoznawanie typu zawartości odpowiedzi bazując na następujących kryteriach: \begin{itemize} -\item wartościach \mintinline{bash}{Content-type}, \mintinline{bash}{Content-Encoding} i \mintinline{bash}{Content-Disposition} w nagłówku odpowiedzi, +\item wartościach \mintinline{bash}{Content-type}\cite{RFC2045}, \mintinline{bash}{Content-Encoding}\cite{RFC7231} i \mintinline{bash}{Content-Disposition}\cite{RFC6266} w nagłówku odpowiedzi, \item nazwie pliku lub adresie url (jeśli nie udało się rozpoznać po nagłówku), \item analizując pierwsze 5000 bajtów zawartości odpowiedzi w poszukiwaniu znaków znajdującyh się wyłącznie w plikach binarnych (jeśli nie udało się @@ -224,11 +226,10 @@ następujących kryteriach: \end{itemize} Powyższy schemat postępowania jest skuteczny jeśli serwisy internetowe zwracają poprawne odpowiedzi. Niestety niektóre strony parafialne potrafią zwracać -odpowiedzi, które są niezgodne z -https://tools.ietf.org/html/rfc7231 section-3.1.1.5. -UZU Dla przykładu potrafi zwórcić \mintinline{bash}{Content-Type: text/html}, a w \mintinline{bash}{body} binarną -zawartość np. film. -Ze względu na tego rodzaju anomalie zastosowano następujący algorytm REF. +odpowiedzi, które są niezgodne z rozdziałem 3.1 z RFC7231\cite{RFC7231}. +Dla przykładu, strona potrafi zwrócić \mintinline{bash}{Content-Type: text/html}, a w \mintinline{bash}{body} binarną +zawartość np. film. Tego rodzaju anomalie są wykrywane i eliminowane. +Stosując następujący algorytm\cite{binaryornot} można określić typ zawartości \mintinline{bash}{body}: \enlargethispage{4\baselineskip} @@ -282,8 +283,8 @@ regulować częstość zapytań w zależności od obciążenia crawler'a i stron \begin{enumerate} \item Przyjmijmy, że: - \subitem {\makebox[4.55cm][l]{\mintinline{python}{download_delay}\footnote{Czasy oczekiwania i - opóźnienia liczone są w sekudnach.}}} to opóźnienie wysłania + \subitem {\makebox[4.55cm][l]{\mintinline{python}{download_delay}}} to opóźnienie\footnote{Czasy oczekiwania i + opóźnienia liczone są w sekudnach.} wysłania zapytania. \subitem \mintinline{python}{target_download_delay} to docelowe opóźnienie zapytania. @@ -298,10 +299,11 @@ regulować częstość zapytań w zależności od obciążenia crawler'a i stron \item Zacznij z \mintinline{python}{download_delay} równym \mintinline{python}{init_download_delay}. \item Kiedy odpowiedź jest odebrana, \\ustaw - \mintinline{python}{target_download_delay = latency / target_concurrency} + \mintinline{python}{target_download_delay = latency / target_concurrency}. \item Następne \mintinline{python}{download_delay} ustaw jako średnią z aktualnego \mintinline{python}{download_delay} i \mintinline{python}{target_download_delay}. - \item \mintinline{python}{download_delay} nie może być mniejszy niż i większy niż . + \item \mintinline{python}{download_delay} nie może być mniejszy niż + \mintinline{python}{min_download_delay} i większy niż \mintinline{python}{max_download_delay}. \item Czasy oczekiwania na odpowiedzi z kodem http różnym od 2xx nie są brane pod uwagę. \end{enumerate} @@ -316,30 +318,103 @@ regulować częstość zapytań w zależności od obciążenia crawler'a i stron \subsection{Crawlowanie wieloprocesorowe} -Pająk został zaprojektowany w ten sposób, aby bardzo łatwo można było -urównoleglić ściąganie stron parafialnych. -Z pomocą GNU parallel crawlowane jest jednocześnie 100 parafii. - -\begin{figure}[tbh] +\begin{figure}[tbh!] \center -\includegraphics[width=0.7\hsize]{crawler.png} +\includegraphics[width=0.72\hsize]{crawler.png} \caption{100 crawlerów pracujących jednocześnie.} \label{crawler_pic} \end{figure} +Pająk został zaprojektowany w ten sposób, aby bardzo łatwo można było +urównoleglić ściąganie stron parafialnych. +Z pomocą GNU parallel\cite{parallel} crawlowane jest jednocześnie 100 parafii. Gdy jedna ze stu +parafii zostanie ściągnięta, zastępuje ją kolejna parafia. Tym sposobem przez +prawie cały czas równolegle pracuje 100 crawlerów. Takie podejście pozwoliło +maksymalnie wykorzystać łącze internetowe, które było wąskim gardłem w procesie +crawlowania stron parafialnych. + + +\subsection{Organizacja danych} +Mały podrozdział do zrobienia lub pominięcia. \subsection{Konwersja html na tekst.} +\begin{figure}[tbh] +\center +\includegraphics[width=0.6\hsize]{html2text_trans.png} +\label{hmlt2text_pic} +\end{figure} + +Do konwersji z formatu html na format tekstowy wykorzystano bibliotekę \mintinline{bash}{html2text}\cite{html2text} +pierwotnie rozwijaną przez słynnego programistę Aarona Schwartza. +\mintinline{bash}{html2text} konwertuje html na czysty, czytelny tekst w +formacie Markdown\cite{markdown}. Biblioteka oferuje wiele opcji do kontroli +konwersji i jest bardzo łatwa w modyfikacji. + +\smallskip +\noindent Zastosowano następujące opcje i modyfikacje przy konwersji: +\vspace{-2mm} +\begin{itemize} +% \setlength{\itemsep}{1pt} +\item ignorowanie linków, tabel i obrazków, +\item usunięto znaki odpowiedzialne za pogrubienie i kurysywę tekstu, +\item usunięto znaki odpowiedzialne za tworzenie list. +\end{itemize} + +\section{Ekstraktor godzin} +\begin{figure}[tbh!] +\center +\includegraphics[width=0.6\hsize]{general_ekstraktor.png} +\label{general_ekstraktor_pic} +\end{figure} +Ekstraktor godzin służy do znajdowania bardzo ogólnych ciągów znaków mogących +być godzinami rozpoczęcia mszy świętych. Został napisany z myślą, aby miał + bardzo wysoki recall, ale już niekoniecznie wysoką precyzję. + Celem jest, + aby w zbiorze wykestrahowanych godzin znalazło się jak najwięcej godzin + rozpoczęcia mszy, bez względu na to jak duży jest ten zbiór. + + Do osiągnięcia tego celu zastosowano następujące reguły. +Ciąg znaków oznaczony jako \mintinline{bash}{hour} zostanie wyekstrahowany, jeśli +zajdzie każdy z poniżych warunków: +\begin{enumerate} + \item \mintinline{bash}{hour} pasuje do wyrażenia regularnego \\ \mintinline{text}{(0?[6-9]|1\d|2[0-2])[:.](oo|[0-5]\d)|6|7|8|9|1\d|2[0-2]}; + \item Znak przed \mintinline{bash}{hour} zawiera się w + \mintinline{python}{{',', '('}}; + \item Znak po \mintinline{bash}{hour} zawiera się w + \mintinline{python}{{',', ')', ';'}}; + \item Jeśli znak przed \mintinline{bash}{hour} równa się + \mintinline{python}{'('} to znak po \mintinline{bash}{hour} jest różny od \mintinline{bash}{')'}. +\end{enumerate} + \section{System crowdsourcingowy} -\section{Ekstraktor regułowy} -\section{Ekstraktor oparty na uczeniu maszynowym} +\begin{figure}[tbh!] +\center +\includegraphics[width=0.6\hsize]{annotator.png} +\label{annotator_pic} +\end{figure} +System crowdsourcingowy został stworzony w celu zebrania jak największej ilości +danych dla klasyfikatora przewidującego czy zaznaczony fragment jest godziną +rozpoczęcia mszy świętej czy nie. +Do dokończenia + +\section{Regułowy ekstraktor godzin mszy} +Do napisania +\section{Ekstraktor godzin mszy oparty na uczeniu maszynowym} +Do napisania +\subsection{Model teoretyczny} +\subsection{FastText} \chapter{Rezultaty} +Do napisania % \section{Organizacja danych} % może zbyt inżynierskieby \chapter{Perspektywy na przyszłość} +Do napisania + \chapter{Podsumowanie} +Do napisania % \subsection{Ewaluacja wewnętrzna} %F1 score % \subsection{Ewaluacja zewnętrzna} % w systemie webowym, użytkownicy