From 80aaf751557aa15b4f565a4202bd421a8b72575b Mon Sep 17 00:00:00 2001 From: Elias Dabbas Date: Tue, 2 Apr 2024 17:46:12 +0300 Subject: [PATCH] Update various docstrings --- advertools/spider.py | 2 +- .../doctrees/advertools.ad_create.doctree | Bin 20040 -> 20894 bytes ...ols.code_recipes.spider_strategies.doctree | Bin 96915 -> 96911 bytes .../doctrees/advertools.extract.doctree | Bin 142980 -> 147856 bytes .../advertools.knowledge_graph.doctree | Bin 38822 -> 39993 bytes docs/_build/doctrees/advertools.logs.doctree | Bin 322228 -> 322275 bytes .../advertools.reverse_dns_lookup.doctree | Bin 37100 -> 37188 bytes .../doctrees/advertools.robotstxt.doctree | Bin 147102 -> 148698 bytes docs/_build/doctrees/advertools.serp.doctree | Bin 159571 -> 159571 bytes .../doctrees/advertools.sitemaps.doctree | Bin 172872 -> 172872 bytes .../_build/doctrees/advertools.spider.doctree | Bin 132222 -> 131979 bytes docs/_build/doctrees/environment.pickle | Bin 5375476 -> 5386506 bytes .../html/_modules/advertools/ad_create.html | 65 +- .../html/_modules/advertools/emoji.html | 3 +- .../html/_modules/advertools/extract.html | 325 ++++++--- .../_modules/advertools/knowledge_graph.html | 95 +-- .../_build/html/_modules/advertools/logs.html | 87 +-- .../advertools/reverse_dns_lookup.html | 15 +- .../html/_modules/advertools/robotstxt.html | 82 ++- .../_build/html/_modules/advertools/serp.html | 4 +- .../html/_modules/advertools/sitemaps.html | 12 +- .../html/_modules/advertools/spider.html | 658 ++++++++++-------- .../html/_modules/advertools/twitter.html | 531 ++++++++------ docs/_build/html/advertools.ad_create.html | 52 +- ...rtools.code_recipes.spider_strategies.html | 41 +- docs/_build/html/advertools.extract.html | 107 ++- .../html/advertools.knowledge_graph.html | 49 +- docs/_build/html/advertools.logs.html | 67 +- .../html/advertools.reverse_dns_lookup.html | 13 +- docs/_build/html/advertools.robotstxt.html | 89 ++- docs/_build/html/advertools.serp.html | 2 +- docs/_build/html/advertools.sitemaps.html | 2 +- docs/_build/html/advertools.spider.html | 139 ++-- docs/_build/html/searchindex.js | 2 +- 34 files changed, 1472 insertions(+), 970 deletions(-) diff --git a/advertools/spider.py b/advertools/spider.py index fea260d7..925a0e7f 100644 --- a/advertools/spider.py +++ b/advertools/spider.py @@ -907,7 +907,7 @@ def crawl( custom_settings=None, ): """ - Crawl a website of a list of URLs based on the supplied options. + Crawl a website or a list of URLs based on the supplied options. Parameters ---------- diff --git a/docs/_build/doctrees/advertools.ad_create.doctree b/docs/_build/doctrees/advertools.ad_create.doctree index a7c1f336d4faf96f44b074369353ce40870bcef1..143c3e1fe3497b07fb72e6d02e44e95da29b201d 100644 GIT binary patch delta 2558 zcmdUxOKclO7{@ak+j+^*G-;E#i9KHDvDrB5#Dp{t@`f~}F{LG5M3Gwaw+g9}H%m)#wI zkN^DU`@Y>zUPG^6K-RO?^KfL%y4Zk*V5Q+MgxA*^en*)H_@e2}no*rBMCA~fCovUy2PfPyaTEw7wy{g^;;Q!<-YN$f^Wakp$;N7nBM-)OrtBJ~k^y zqd_?|hlRMIn{g)KjJK&CZ_9$!IF4$uFwsj5MULTl`P6ij#3a}dD&d;9o=XWXiV z9dBh8SZeAwhOR+R8%E!lK3`^iexyG4!oGG7^&4of+MV9o4rez!)9$e#OF;oFIBU2< z3tX25(9KK`&TfG@-v~VGckN@k6^~MA0zlG^KoyKQTBMFHIMHQ+2Zff3fh~?$P-E#M zoPe7hUV1`|YuL%7PU!CxtNb+mU$Oe(OlKpY4hK3!tvn1WH)es2fD5j)_HqFW+#z~6 zzXjT*3gm}t9aUv4kcn0@6WO8Jn93=9HLWn2R+uyuvLL3yb~C{(3X@rdr?)G#!)Vt9 zPtj3gB=lH3r4&u2Xz^s9vt{@d(@^{(M^A~5T!lxw>mVYO&v|AweO@*UGQ)akoHi5I zX0bd&JBv1i8VkppB{Qg?l&sq5677Q&q?%cA3yO8sE{fR*qL@ivl3mO7!EdI38+3Z#tmJ^=padz4CL{L{l+ff$ZcS@$Si)0Tmw~&=RnUReifsOuZ zQ~_`F4At>kjPPE}8;hEGQFKE1DZ0Sc;g6oVf3z4b&8C<$Q+(g+LMlyB8;DqQ2#)ip zprF6MpBBh;NGEj63Z;@HVfM=m-abCCglFZGnywlIhh&|N&(kZsmsvvjaK$t~p)F~K z%%lznjEL>VU{=@&P=>DM*93+X=|wLPaH`1 z!T&{Xk`7__V5Q|GWewMR_n7FbMQ0)y*^Ynpz1y(oK^~|KXCRwYCi$T_KKM|6gc+E5 zDBj(cW1bs*eWP+TPPX_?4K&sKSCrsf;Xa)QVQbS4gvSH7uV5aY8}!<8g*wj1wRvLD zN({5YWS;=}aXw7+CG!g*4^RIVPjC#qQ~NI_zX}KZ9B6~x0awYGjlG>C2W@adaKJ=h qgrjpZV@9Z1yE8~l=(|Hp&?ZkQN7&qqk<=keLUBjNY;flT-G2g1iW~L- delta 2142 zcmd5-Urbw780TDCC}m13e+t#Dr}WP)U0ceZv5rAEV8sZ7ftqazA@jBzxUFq3x%ajR zN-`dN(9{5a_05==#TZ|3q%kuw(dm;98d$Y|$4r`ew{L=e8XcX55R$Cb#F_ z^PThie&6r>zI$K0f;XY zs|xlctV=u zu4#5&NG78~>}l*#RGFb*6;NVRTR=VB|LK}Nz(9>FN9WL zE!YUx-6jaQYq@MSn0uSp@M)h5*8NtrUW!{#4!XKAJTTDDB{rce;Iw3`tEw_lF`7di z`RDU%`PIDGo}gQA9B-*-F@?oi8KriVg{y&x?j1S{KfA2x8bv*g3KX#)eFz(!a}Ksa zbcod&U>%O9aZFH%u>|a4$P~g3p&*aGfTw~OeWhW1u3_v_j59FQao&cZSH->0q;S1g>`53}s08Wx&S7M+#kGgPlrwOufzY|C2s9ob9!8BgN2XZUc8(2lk#LaA@FUbt0mJ z2Ct*VtGkD`Uf4Nqsb?WgTECX(P(@8%2!xJtJcFCCL}J2XTosb>6@oocNlI!CS%M>d zoiN!qz^&|Y%WB-Rl-n@3zQ-$9!E3X~D|;_qS&bJ9X}p43j!IrxjhDjUIw2prGG>;E znvv5Ao|oj5psHjpFV@cHsb9>GABYsa#Vl}>reG!!orxr(x9-UdY`bl+dZL!Qp@WT+ zkDSk$SW97P9@CzPrxz4s5jow#4C)c}xrTiU%9#($-}Uq@CW#Y*&bpd<%Hlg#M>~Ao zUrZWmx8^uXrp#%at$BgXP^Q!~VR&nB;4m+x3Gc(ax+H0XC=jWj znFwkT1@HYzZ7|p!g6~f~XZU~c$QbXQqJ=8gWNoBc31Tz#nuT6%^tvX#n-T2^O-_6B zJ~?xnOiN+zQjFD1JUpP`7Bkgmh96S!V^37ba5}m@$&c%pDR=circe9{=E9*3 diff --git a/docs/_build/doctrees/advertools.code_recipes.spider_strategies.doctree b/docs/_build/doctrees/advertools.code_recipes.spider_strategies.doctree index a198c5ae04fee11cb0c726755e9978dd6e7e9170..4088516716fd073b98e58004ca8318b0d0df7c4c 100644 GIT binary patch delta 3792 zcmdUve^6A{6~{TN`&PjKA|S%LF3ZLMZkF{&G%+C9V5?Sk6rHIiMqFVL!mlkX#b0P_ zG`2~mF&^}4B!I$-iiFT-23rkcMym}GwTe+h@F!6V0sIkcwA%Y)*=(I@r+;-O?~ixx z{d~_k@7#0mefU86;REHsx0RcrcHnwzR^^l_Q?!@zZ9{o1Qdl zM#7AFy2;vcg*XUkg9;gfd){piY8awitf9vy~koDe|q#IYt3 zE;v&fKN_!Q$~ZTr@JA;d)~^qmNF8*x+?-|U);yzqncZ0fb&DuUQ@vS~Hhcb0U=>0C zX%+JHO-Z2e0{r6L5Il-OzPe{xj^?5;6>q?D9R?PK|96LFMXBH;w-3r`wi5pgi>BV8GZirEJtHo!Th1;BV zRR^Q4#K4ugC1>zdg;JsQBuD%q5^ZHVw3Uy&mJ&2=thv&gx&NxW}*|ICfu@oc<{&Kr3f_R;Zx2 zWLBLz_`7E=U4CvRy-s=d7#+KP8s`~zI|(t)W5F(=^S0I24qro0)ibwkYI3sGW`A*( zC3|VUWvP`NJ8PaZpX=f|ou*|c=cLe|6LVU+BHd=trdU%mEq1G$e<8ojZny0Nx7vNU z_>(ApebL&Y!XmnBe;DH7k+;N>=8Zq>|0Rr;fBv~r0psbeOz?8=F}-zux?Jn8^R0RI zq%^A~#hRO!q{D`~(Er6P^gt3!lGh$^C{!`*sQ5p}Pi4;`35|y|xZ>by!N<7sO%Nj= zIW!EUSQe6j+QViHuaAdV%&M=Z?~ucvL#%w}@H$Xv0oSh7VE&P9@S5!N-}>*KHs=dupfS8&5f%h9yb&%XCra#*Hw^!FP?Nr2`t%k4%?daIJ)U~kRaDIMFG{@ zPqj#9rf;FT3A;~cgBcf{X%_IP6KZh7-_B8C;n^1KzMzChJXuq-9^X4>W<=rV%WGxG z(45PVT;3c7T#M`1BpmdO0~=bE_{VRMSw(@6MqSk7#!Cb7lM9JlzJH;a%Z`3o!lxG< zsyVFCV}kXxN~mtt;KP=9n1eBw_6YT!yIMh&Bdslvh{czQl*po|;*QH^{;l`h5~ufCti5whNxlrjYLN9^o?e&yh0TdUb^YPs7@uW??7h3MrkB|)**Ui z`!_`5tO?cnU&x9j=C~%touA_`;=JLQ^_op(hxIl?_I}cvi|Ng;P@oPCM><@ zkQT5WcJais`y}-JUV~fj&lY$f!ox`H$I%Z;1PnvM3 z)y>%Vuvkpr=F@Ng(J7{cPE9!Ykpteqnn#t=8!V)Wr)+zq$GwlY3Ut$jw*2#oK#!eB z!hKI1#Ag5~73u(Xnn^f-9vx5Tb2xl_fQLsu`(+gtg{S#$Ua`W1KX{dl6rRx!0ygKs z??sB4JVhN%;R%9RMA9V+s3x&0P!j(EP|ioNl{6^9M7jpRMFDDDKtqC+P$mKnE8zlJ zJcJh5D{|$iKu`WI!8}gu;#J@SdPY9gH@>PN7{lz>7 zil$(`ih{9p2RXRu0(vrI9DE??V>cQx9&QObEQAM7oj?y!2I-zacO!$8z694*8LSSA zkb5S9RCiz^3<9binFOtnNlIRZN>wIvsu4~nU#4x?_6pPs`WH7^H5oS1kSVXy$Se{P n4Kg*SqM=#JVhJV^Z8Tl&!x-p*th)9oupHpEx&?7CdGfyiODsz7 delta 3598 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 delta 12267 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 A4gdfE diff --git a/docs/_build/doctrees/advertools.knowledge_graph.doctree b/docs/_build/doctrees/advertools.knowledge_graph.doctree index e7e1ad7b82b5f7b1877a489a821963164e3ba477..ed473183e3523dd3c4bae525631432aeac3c761b 100644 GIT binary patch delta 3296 zcmcImZERE58P2ht#J+qu#39gp*w+Rc$2caTO$!CqR147ZkpLAXf`!zMudjV$`x@Wt z5GN!Unxy$~MVHql>aA;&-`eW;)YMM5w(?0%;b=|7{nYIe8(p0JIHuXK{ z-s>1#_2b7Z`QG#OzR&Z#?|aU%hLAjtIp9xEZ?r9FLU^5Jd*r7x02z-G|PR*vUi0=|=iTKFlmGHgg@K063_iFIrGWcE! zU!gK4y2v8Ti+(a$iIOcxS*%3KYA7$3p=3W7<)2X}qS#|Ta>{~Vu2&)+KCxP z&z;Ae*>k=P?o0Qt+0V`x&2%*V+e*{33N`(+!V~k73cBS_)qd`A+%LR09#d3k%Itzy z)6I~`Tx_+_5d&Q7%oOMzW4zsyK6rTau*ZU8@-_^Z8cd6VT9DS(R8>jyI65b7Ghx#V z-y5BP^J@K?kEm`IY|47HZlrYZ>FB>W|1jZ~#x@ZSHjiDauOt9}7^50aXHf%8WXFxw z>&Km_r)xZfPuJ{5czvAH_5F3c-_c2`s@Ps(!D;6^I{2ljZol58JJ}oGjxT2^OtVc zTc}Mb<;=n9%T(1LFH=?jxjd#hYrNN)h6%yxMqT2SX(xRAOgHvArvqp-G`+br^Q5OF z-sI;BT2Xnis@B%776^@#YvvRhP0Vc7O@BNyj4ju!3!k*?rP=RqodFK^&O4FJnRyosJbSgpj7El9)-Kiety&-nH|!X- z!tS}l7=W2M8h}^k4w8khhVX#S@vZrr2c%A{eB*kG)@Zj57MUYc$B=7kY)C>-IvsbDf3R06$0HFzK$Ob9GCkMX5G zFGu)bJWh)|B_|a@32b(Vmo6a9V#Pgknb-W%RlP#F;t(A_xkPy z_I)|BCi+`OfTYb<)K)vV7ccW|`5HX+rm z{&6PXCX|WC@ixg5UxD7iPtdC0QXVfmI;NKi{AO3n(jzq%JUyrjkFD3( zAk-5alPxf`unu;LO|)I_(`GsPDqTgM2Fa?8hv_dHUbn2^9?Q}QyCdP_Trw_1q zchCOM@0>k*;PNHK*>Qz>P<{CLkqPzB8>-AMpU>rC%~ou-xxFrPn-zN)uPey7Sn;J+ zGwY>0PJ#Y*ux5C!q52t*Bs>k%Dzq8aG?qYBgHB@>Sszt{uEv#kZg;FGyK75aZoH}e zABTU^0%~~;^(J0#@hed@@x@yRp?!(3T5A=sX-^0qwB1p7mB6gm!^7RR8jmt7i!<_E zV%?rrgx-a*c1!LdY3+a#jG@voNB(pBrG+RNf;N5_{%$WtF(_dw6law%;nbHLB|8jP z&=%(k$lUWN2BCVT;7T zW-x4-lcCmSAPl=)Ruox~A)Lt&TaY0vF&xWa2+zrIiKBVA!BwEdf(+xC3^NNdj7tpP zWH5|V22HB)NpY0JZr-RLkP4WigNajetM~|v@rR53WFeLzN(}e9ilE*q$d zn~1I|fQfEd05WuM2AUUbcRR!sCe#OCKw1!jA3Tk*q?NxZir zShmO+h|6Cm28y0BhGN(_Sdh-08N!3jx-b0%)7^_LHlNSKGG6#$kY;XC)S$yJlY3-) znNGilwPJ=;MYKk%WkkF^=yh2!1f!G7bL3;GvQN#SelNY_&-T(gp55CkNiO@hr0g7K zhL*})AMJCdA|0wyQE!iJ*23UWo$j#|DG17=^EZb0g2%SA3A)#jY2w=7ExR}!UJBQT zv>7QW8*a}3(BtlO2e8E(?6k203=D5rp>>P6uBN66Z)TkgDH=@XYsnPDcf+M5wtK@D zjMR@P|G|d=Dh_7epYz}(+zOPM zD@b9{UPT9~TS^^_meAYfv~O5Ab!-z%Scw4_)GC=JyBWyd~h<;5Q&ZZ1?2L4BikuCayf}M?Xn_?=D+snqARP@iv Jv}Wu?{XfV_h^GJm diff --git a/docs/_build/doctrees/advertools.logs.doctree b/docs/_build/doctrees/advertools.logs.doctree index ff56c306fac25cc705b81067ca7397f6e8708a21..fd56f6ad1c2aee28221aa1aca4fb6f9bbe5af4c8 100644 GIT binary patch delta 27372 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 Bj9~x( delta 26761 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 Iz0EuSKmDOV3jhEB diff --git a/docs/_build/doctrees/advertools.reverse_dns_lookup.doctree b/docs/_build/doctrees/advertools.reverse_dns_lookup.doctree index 50f15ae436ca458f2d709e42f815d4e81e7f4de8..b565b088ae11f01aa1ec04f53df068396c13a6c7 100644 GIT binary patch delta 1275 zcmdszOGs2<7=}IOnLsoN1XIy$9CI$tf95#O=z*l^LKpK=P*~=arK4k0j>e2N-W`NC z64XmDL^c{o4K6CCZAQ>aDsp4gBF#lB7qu%|*gxNyo6xdVXYu`f&-;G2voV+X=250N zA>LE&JQv@d6VDb485wxrRyCf@7%Pi?TDzT9*C>oXvQne1`Zt0i|GiU!A6I9~RtuBs zY^=71?_fY#g%y+=UJ4AnY@&!@PTYy`d(0Z+%vIx(bk!LADNuMO>(bN|rzCx~AZzE+J zls$82;gh#P6YH`q2g`d5_&%V+N%Lte^-F|{Qn+!zPe@LnaX}yLzn(8>47`3orH+6G zGyYPTZ5C|zNhIA$mrC%Zeivqal3>6GUx*AZ(hVL$ODR-8*h}bZ3dJV;8gvr=xfMrl z1PJHl(mm<>%->Y^*_$rqqu)^uMRw6V!Z9D8aC>Y)jBS+#IcS7) zxQKS0ACCwov`j3BCaxXAa?pjYNr|#Ho;Bm!D_*;ZE QIUC+7uV9L$@P&N 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 delta 7204 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 KYhE%gZv_Czksi_j diff --git a/docs/_build/doctrees/advertools.sitemaps.doctree b/docs/_build/doctrees/advertools.sitemaps.doctree index 7e3a40d6c48b27a6e62814bf2369e0a59fc27e90..b70d01d7c216a5bb506a12783f234a277b82efc7 100644 GIT binary patch delta 42 qcmX?cjO)ZPt_|B%8I>k)SCs>j*Hm?3>}F-Pc4alj?aFFQs*Q~78uB^tmU0IDuwH5%LDi0_C diff --git a/docs/_build/doctrees/advertools.spider.doctree b/docs/_build/doctrees/advertools.spider.doctree index 131da7ca2b18574ee8e05a3ea8e510ba54acf899..d5844c2fd2da1eae848e78f678829e09e0fc26ee 100644 GIT binary patch delta 6309 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 delta 5859 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 ZrP-A42;ggCrFmKa*8_6_&Gwh_{tN7|f_(r0 diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 9074a44299d043f1b4ae3dd1f3e44ef5c44b4823..c502024c4d47d3ac590d945787368fd9061e63d2 100644 GIT binary patch delta 649459 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 z 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 A9{>OV delta 639696 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 MpQ0>M5>8ilwK* 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 z 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

#78%3+2cp!w?AdRm71fEjGU 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 diff --git a/docs/_build/html/_modules/advertools/ad_create.html b/docs/_build/html/_modules/advertools/ad_create.html index b3acd957..d9f2d967 100644 --- a/docs/_build/html/_modules/advertools/ad_create.html +++ b/docs/_build/html/_modules/advertools/ad_create.html @@ -183,6 +183,7 @@

Source code for advertools.ad_create

             '5-star Hotels In Portugal']
 
 """
+
 import string
 
 
@@ -191,41 +192,61 @@ 

Source code for advertools.ad_create

 def ad_create(template, replacements, fallback, max_len=30, capitalize=True):
     """Insert each of the replacement strings in its place within template.
 
-    :param str template: a string format template, using braces e.g. "Get the
-                         latest {} today."
-    :param list replacements: replacement strings to be inserted in
-                              :attr:`template`
-    :param str fallback: the string to insert in :attr:`template` in case
-                         :attr:`replacement` is longer than :attr:`max_len`
-    :param int max_len: the maximum allowed length of the full string
-    :param bool capitalize: whether or not to capitalize words in the result
-    :returns formatted: list of strings
-
-    >>> ad_create("Let\'s count {}", ['one', 'two', 'three'], 'one', 20)
+    Parameters
+    ----------
+    template : str
+      A string format template, using braces e.g. "Get the latest {} today."
+    replacements : list
+      Replacement strings to be inserted in :attr:`template`.
+    fallback : str
+      The string to insert in :attr:`template` in case :attr:`replacement` is longer
+      than :attr:`max_len`.
+    max_len : int
+      The maximum allowed length of the full string.
+    capitalize : bool
+      Whether or not to capitalize words in the result.
+
+    Returns
+    -------
+    formatted : list
+      List of ads (strings).
+
+    Examples
+    --------
+    >>> ad_create("Let's count {}", ["one", "two", "three"], "one", 20)
     ["Let's Count One", "Let's Count Two", "Let's Count Three"]
 
-    >>> ad_create(template='My favorite car is {}',
-    ...           replacements=['Toyota', 'BMW', 'Mercedes', 'Lamborghini'],
-    ...           fallback='great',
-    ...           max_len=28)
+    >>> ad_create(
+    ...     template="My favorite car is {}",
+    ...     replacements=["Toyota", "BMW", "Mercedes", "Lamborghini"],
+    ...     fallback="great",
+    ...     max_len=28,
+    ... )
     ['My Favorite Car Is Toyota', 'My Favorite Car Is Bmw',
     'My Favorite Car Is Mercedes', 'My Favorite Car Is Great']
 
-    >>> ad_create('KeEP cApITalization {}', ['As IS'],
-    ...           fallback='fallback', max_len=50, capitalize=False)
+    >>> ad_create(
+    ...     "KeEP cApITalization {}",
+    ...     ["As IS"],
+    ...     fallback="fallback",
+    ...     max_len=50,
+    ...     capitalize=False,
+    ... )
     ['KeEP cApITalization As IS']
 
-    >>> ad_create('This is very long and will produce and error',
-    ...           replacements=['something', 'long'], fallback='Very long',
-    ...           max_len=20)
+    >>> ad_create(
+    ...     "This is very long and will produce and error",
+    ...     replacements=["something", "long"],
+    ...     fallback="Very long",
+    ...     max_len=20,
+    ... )
     Traceback (most recent call last):
     File "<input>", line 1, in <module>
     File "<input>", line 26, in ad_create
     ValueError: template + fallback should be <= 20 chars
     """
     if len(template.format(fallback)) > max_len:
-        raise ValueError('template + fallback should be <= '
-                         + str(max_len) + ' chars')
+        raise ValueError("template + fallback should be <= " + str(max_len) + " chars")
     final_ad = []
     for rep in replacements:
         if len(template.format(rep)) <= max_len:
diff --git a/docs/_build/html/_modules/advertools/emoji.html b/docs/_build/html/_modules/advertools/emoji.html
index b7e81317..38a8a094 100644
--- a/docs/_build/html/_modules/advertools/emoji.html
+++ b/docs/_build/html/_modules/advertools/emoji.html
@@ -119,7 +119,8 @@
            

Source code for advertools.emoji

-"""
+# ruff: noqa: E501
+"""
 .. _emoji:
 
 Emoji: Extract, Analyze, and Get Insights
diff --git a/docs/_build/html/_modules/advertools/extract.html b/docs/_build/html/_modules/advertools/extract.html
index 34181955..399f7420 100644
--- a/docs/_build/html/_modules/advertools/extract.html
+++ b/docs/_build/html/_modules/advertools/extract.html
@@ -725,12 +725,20 @@ 

Source code for advertools.extract

 
     emoji_summary['top_emoji_sub_groups']
 
-"""
-__all__ = ['extract', 'extract_currency',
-           'extract_exclamations', 'extract_hashtags',
-           'extract_intense_words', 'extract_mentions', 'extract_numbers',
-           'extract_questions', 'extract_words', 'extract_urls'
-           ]
+"""  # noqa: E501
+
+__all__ = [
+    "extract",
+    "extract_currency",
+    "extract_exclamations",
+    "extract_hashtags",
+    "extract_intense_words",
+    "extract_mentions",
+    "extract_numbers",
+    "extract_questions",
+    "extract_words",
+    "extract_urls",
+]
 
 import re
 from collections import Counter
@@ -738,8 +746,17 @@ 

Source code for advertools.extract

 from urllib.parse import urlparse
 
 # from .emoji import EMOJI, EMOJI_ENTRIES
-from .regex import (CURRENCY, CURRENCY_RAW, EXCLAMATION, EXCLAMATION_MARK,
-                    HASHTAG, MENTION, QUESTION, QUESTION_MARK, URL)
+from .regex import (
+    CURRENCY,
+    CURRENCY_RAW,
+    EXCLAMATION,
+    EXCLAMATION_MARK,
+    HASHTAG,
+    MENTION,
+    QUESTION,
+    QUESTION_MARK,
+    URL,
+)
 
 
 
@@ -768,26 +785,25 @@

Source code for advertools.extract

     if isinstance(text_list, str):
         text_list = [text_list]
     if not extracted:
-        extracted = [regex.findall(text.lower())
-                     for text in text_list]
+        extracted = [regex.findall(text.lower()) for text in text_list]
     flat = [item for sublist in extracted for item in sublist]
 
     summary = {
-        key_name + 's': extracted,
-        key_name + 's' + '_flat': flat,
-        key_name + '_counts': [len(x) for x in extracted],
-        key_name + '_freq': sorted(Counter([len(i)
-                                            for i in extracted]).items(),
-                                   key=lambda x: x[0]),
-        'top_' + key_name + 's': sorted(Counter(flat).items(),
-                                        key=lambda x: x[1],
-                                        reverse=True),
-        'overview': {
-            'num_posts': len(text_list),
-            'num_' + key_name + 's': len(flat),
-            key_name + 's' + '_per_post': len(flat) / len(text_list),
-            'unique_' + key_name + 's': len(set(flat)),
-        }
+        key_name + "s": extracted,
+        key_name + "s" + "_flat": flat,
+        key_name + "_counts": [len(x) for x in extracted],
+        key_name + "_freq": sorted(
+            Counter([len(i) for i in extracted]).items(), key=lambda x: x[0]
+        ),
+        "top_" + key_name + "s": sorted(
+            Counter(flat).items(), key=lambda x: x[1], reverse=True
+        ),
+        "overview": {
+            "num_posts": len(text_list),
+            "num_" + key_name + "s": len(flat),
+            key_name + "s" + "_per_post": len(flat) / len(text_list),
+            "unique_" + key_name + "s": len(set(flat)),
+        },
     }
     return summary
@@ -801,13 +817,25 @@

Source code for advertools.extract

     Get a summary of the number of currency symbols, their frequency,
     the top ones, and more.
 
-    :param list text_list: A list of text strings.
-    :param int left_chars: The number of characters to extract, to the
-        left of the symbol when getting :attr:`surrounding_text`
-    :param int right_chars: The number of characters to extract, to the
-        left of the symbol when getting :attr:`surrounding_text`
-    :returns summary: A dictionary with various stats about currencies
-
+    Parameters
+    ----------
+    text_list : list
+      A list of text strings.
+    left_chars : int
+      The number of characters to extract, to the left of the symbol when getting
+      :attr:`surrounding_text`
+    right_chars : int
+      The number of characters to extract, to the left of the symbol when getting
+      :attr:`surrounding_text`
+
+    Returns
+    -------
+
+    summary : dict
+      A dictionary with various stats about currencies.
+
+    Examples
+    --------
     >>> posts = ['today ₿1 is around $4k', 'and ₿ in £ & €?', 'no idea']
     >>> currency_summary = extract_currency(posts)
     >>> currency_summary.keys()
@@ -859,15 +887,22 @@ 

Source code for advertools.extract

     'currency_symbols_per_post': 1.6666666666666667,
     'unique_currency_symbols': 4}
     """
-    summary = extract(text_list, CURRENCY, 'currency_symbol')
-    summary['currency_symbol_names'] = [[name(c).lower() for c in x] if x
-                                        else [] for x in
-                                        summary['currency_symbols']]
-    surrounding_text_regex = re.compile(r'.{0,' + str(left_chars) + '}' +
-                                        CURRENCY_RAW +
-                                        r'.{0,' + str(right_chars) + '}')
-    summary['surrounding_text'] = [surrounding_text_regex.findall(text)
-                                   for text in text_list]
+    summary = extract(text_list, CURRENCY, "currency_symbol")
+    summary["currency_symbol_names"] = [
+        [name(c).lower() for c in x] if x else [] for x in summary["currency_symbols"]
+    ]
+    surrounding_text_regex = re.compile(
+        r".{0,"
+        + str(left_chars)
+        + "}"
+        + CURRENCY_RAW
+        + r".{0,"
+        + str(right_chars)
+        + "}"
+    )
+    summary["surrounding_text"] = [
+        surrounding_text_regex.findall(text) for text in text_list
+    ]
     return summary
@@ -880,9 +915,16 @@

Source code for advertools.extract

     Get a summary of the number of exclamation marks, their frequency,
     the top ones, as well the exclamations written/said.
 
-    :param list text_list: A list of text strings.
-    :returns summary: A dictionary with various stats about exclamations
+    text_list : list
+      A list of text strings.
+
+    Returns
+    -------
+    summary : dict
+      A dictionary with various stats about exclamations.
 
+    Examples
+    --------
     >>> posts = ['Who are you!', 'What is this!', 'No exclamation here?']
     >>> exclamation_summary = extract_exclamations(posts)
     >>> exclamation_summary.keys()
@@ -970,12 +1012,11 @@ 

Source code for advertools.extract

     'exclamation_marks_per_post': 1.5,
     'unique_exclamation_marks': 4}
     """
-    summary = extract(text_list, EXCLAMATION_MARK, key_name='exclamation_mark')
-    summary['exclamation_mark_names'] = [[name(c).lower() for c in x] if x
-                                         else [] for x in
-                                         summary['exclamation_marks']]
-    summary['exclamation_text'] = [EXCLAMATION.findall(text)
-                                   for text in text_list]
+    summary = extract(text_list, EXCLAMATION_MARK, key_name="exclamation_mark")
+    summary["exclamation_mark_names"] = [
+        [name(c).lower() for c in x] if x else [] for x in summary["exclamation_marks"]
+    ]
+    summary["exclamation_text"] = [EXCLAMATION.findall(text) for text in text_list]
     return summary
@@ -988,9 +1029,16 @@

Source code for advertools.extract

     Get a summary of the number of hashtags, their frequency, the top
     ones, and more.
 
-    :param list text_list: A list of text strings.
-    :returns summary: A dictionary with various stats about hashtags
+    text_list : list
+      A list of text strings.
 
+    Returns
+    -------
+    summary : dict
+      A dictionary with various stats about hashtags.
+
+    Examples
+    --------
     >>> posts = ['i like #blue', 'i like #green and #blue', 'i like all']
     >>> hashtag_summary = extract_hashtags(posts)
     >>> hashtag_summary.keys()
@@ -1027,8 +1075,8 @@ 

Source code for advertools.extract

      'num_hashtags': 3,
      'hashtags_per_post': 1.0,
      'unique_hashtags': 2}
-     """
-    return extract(text_list, HASHTAG, 'hashtag')
+ """ + return extract(text_list, HASHTAG, "hashtag")
@@ -1041,17 +1089,23 @@

Source code for advertools.extract

     words that have :attr:`min_reps` or more repetitions of characters.
     "I looooooveeee youuuuuuu", and "I haaatttteeee youuuuuu" are both intense.
 
-    :param list text_list: A text list from which to extract intense words
-    :param int min_reps: The number of times a character has to be repeated for
-                         the word to be considered intense.
-
-    :returns summary: A dictionary with various stats about intense words
+    Parameters
+    ----------
+    text_list : list
+      A text list from which to extract intense words.
+    min_reps : int
+      The number of times a character has to be repeated for the word to be considered
+      intense.
+
+    Returns
+    -------
+    summary : dict
+      A dictionary with various stats about intense words.
     """
-    regex = re.compile(r'(\S*)(\S)({}\S*)'.format((min_reps - 1) * r'\2'))
-    extracted = [[''.join(x) for x in regex.findall(text)]
-                 for text in text_list]
+    regex = re.compile(r"(\S*)(\S)({}\S*)".format((min_reps - 1) * r"\2"))
+    extracted = [["".join(x) for x in regex.findall(text)] for text in text_list]
 
-    return extract(text_list, regex, 'intense_word', extracted)
+ return extract(text_list, regex, "intense_word", extracted)
@@ -1063,9 +1117,18 @@

Source code for advertools.extract

     Get a summary of the number of mentions, their frequency, the top
     ones, and more.
 
-    :param list text_list: A list of text strings.
-    :returns summary: A dictionary with various stats about mentions
+    Parameters
+    ----------
+    text_list : list
+      A list of text strings.
+
+    Returns
+    -------
+    summary : dict
+      A dictionary with various stats about mentions.
 
+    Examples
+    --------
     >>> posts = ['hello @john and @jenny', 'hi there @john', 'good morning']
     >>> mention_summary = extract_mentions(posts)
     >>> mention_summary.keys()
@@ -1103,13 +1166,13 @@ 

Source code for advertools.extract

      'mentions_per_post': 1.0,
      'unique_mentions': 2}
     """
-    return extract(text_list, MENTION, 'mention')
+ return extract(text_list, MENTION, "mention")
[docs] -def extract_numbers(text_list, number_separators=('.', ',', '-')): +def extract_numbers(text_list, number_separators=(".", ",", "-")): """Return a summary dictionary about numbers in ``text_list``, separated by any of ``number_separators`` @@ -1117,11 +1180,21 @@

Source code for advertools.extract

     ones, and more. Typically, numbers would contain separators to make them
     easier to read, so these are included by default, which you can modify.
 
-    :param list text_list: A list of text strings.
-    :param list(str) number_separators: A list of separators that you want
-        to be included as part of the extracted numbers.
-    :returns summary: A dictionary with various stats about the numbers
-
+    Parameters
+    ----------
+    text_list : list
+      A list of text strings.
+    number_separators : list
+      A list of separators that you want to be included as part of the extracted
+      numbers.
+
+    Returns
+    -------
+    summary : dict
+      A dictionary with various stats about the numbers.
+
+    Examples
+    --------
     >>> posts = ['text before 123', '123,456 text after', 'phone 333-444-555',
     'multiple 123,456 and 123.456.789']
     >>> number_summary = extract_numbers(posts)
@@ -1129,7 +1202,6 @@ 

Source code for advertools.extract

     dict_keys(['numbers', 'numbers_flat', 'number_counts', 'number_freq',
     'top_numbers', 'overview'])
 
-
     >>> number_summary['numbers']
     [['123'], ['123,456'], ['333-444-555'], ['123,456', '123.456.789']]
 
@@ -1162,14 +1234,13 @@ 

Source code for advertools.extract

      'unique_numbers': 4}
     """
     if not number_separators:
-        regex = r'\d+'
+        regex = r"\d+"
     else:
-        if '-' in number_separators:
-            number_separators = ([s for s in number_separators if s != '-']
-                                 + ['-'])
-        separators = '[' + ''.join(number_separators) + ']'
-        regex = r'(?:(?:\d+' + separators + '?)+)?' + r'\d+'
-    return extract(text_list, regex=regex, key_name='number')
+ if "-" in number_separators: + number_separators = [s for s in number_separators if s != "-"] + ["-"] + separators = "[" + "".join(number_separators) + "]" + regex = r"(?:(?:\d+" + separators + "?)+)?" + r"\d+" + return extract(text_list, regex=regex, key_name="number")
@@ -1181,9 +1252,18 @@

Source code for advertools.extract

     Get a summary of the number of question marks, their frequency,
     the top ones, as well the questions asked.
 
-    :param list text_list: A list of text strings.
-    :returns summary: A dictionary with various stats about questions
+    Parameters
+    ----------
+    text_list : list
+      A list of text strings.
+
+    Returns
+    -------
+    summary : dict
+      A dictionary with various stats about questions.
 
+    Examples
+    --------
     >>> posts = ['How are you?', 'What is this?', 'No question Here!']
     >>> question_summary = extract_questions(posts)
     >>> question_summary.keys()
@@ -1273,12 +1353,11 @@ 

Source code for advertools.extract

     'question_marks_per_post': 1.5,
     'unique_question_marks': 4}
     """
-    summary = extract(text_list, QUESTION_MARK, key_name='question_mark')
-    summary['question_mark_names'] = [[name(c).lower() for c in x] if x
-                                      else [] for x in
-                                      summary['question_marks']]
-    summary['question_text'] = [QUESTION.findall(text)
-                                for text in text_list]
+    summary = extract(text_list, QUESTION_MARK, key_name="question_mark")
+    summary["question_mark_names"] = [
+        [name(c).lower() for c in x] if x else [] for x in summary["question_marks"]
+    ]
+    summary["question_text"] = [QUESTION.findall(text) for text in text_list]
     return summary
@@ -1292,9 +1371,18 @@

Source code for advertools.extract

     ones, and more.
     This does NOT validate URLs, www.a.b would count as a URL
 
-    :param list text_list: A list of text strings.
-    :returns summary: A dictionary with various stats about URLs
+    Parameters
+    ----------
+    text_list : list
+      A list of text strings.
 
+    Returns
+    -------
+    summary : dict
+      A dictionary with various stats about URLs.
+
+    Examples
+    --------
     >>> posts = ['one link http://example.com', 'two: http://a.com www.b.com',
     ...          'no links here',
     ...          'long url http://example.com/one/two/?1=one&2=two']
@@ -1344,23 +1432,23 @@ 

Source code for advertools.extract

      'num_urls': 4,
      'urls_per_post': 1.0,
      'unique_urls': 4}
-     """
+    """
     extracted = [URL.findall(x) for x in text_list]
     for urllist in extracted:
         for i, url in enumerate(urllist):
-            if url.lower().startswith('www') or url.lower().startswith('ftp'):
-                urllist[i] = 'http://' + url
+            if url.lower().startswith("www") or url.lower().startswith("ftp"):
+                urllist[i] = "http://" + url
     domains = [[urlparse(u).netloc for u in e] for e in extracted]
     domains_flat = [item for sublist in domains for item in sublist]
-    top_domains = sorted(Counter(domains_flat).items(),
-                         key=lambda x: x[1], reverse=True)
-    tlds = [[d.split('.')[-1] for d in dom] for dom in domains]
+    top_domains = sorted(
+        Counter(domains_flat).items(), key=lambda x: x[1], reverse=True
+    )
+    tlds = [[d.split(".")[-1] for d in dom] for dom in domains]
     tlds_flat = [item for sublist in tlds for item in sublist]
-    top_tlds = sorted(Counter(tlds_flat).items(),
-                      key=lambda x: x[1], reverse=True)
-    summary = extract(text_list, URL, 'url', extracted)
-    summary['top_domains'] = top_domains
-    summary['top_tlds'] = top_tlds
+    top_tlds = sorted(Counter(tlds_flat).items(), key=lambda x: x[1], reverse=True)
+    summary = extract(text_list, URL, "url", extracted)
+    summary["top_domains"] = top_domains
+    summary["top_tlds"] = top_tlds
     return summary
@@ -1374,16 +1462,23 @@

Source code for advertools.extract

     Get a summary of the number of words, their frequency, the top
     ones, and more.
 
-    :param list text_list: A list of text strings.
-    :param list words_to_extract: A list of words to extract from
-                                  :attr:`text_list`.
-
-    :param bool entire_words_only: Whether or not to find only complete words
-        (as specified by :attr:`words_to_find`) or find any any of the
-        words as part of longer strings.
-
-    :returns summary: A dictionary with various stats about the words
-
+    Parameters
+    ----------
+    text_list : list
+      A list of text strings.
+    words_to_extract : list
+      A list of words to extract from :attr:`text_list`.
+    entire_words_only : bool
+      Whether or not to find only complete words (as specified by :attr:`words_to_find`)
+      or find any any of the words as part of longer strings.
+
+    Returns
+    -------
+    summary : dict
+      A dictionary with various stats about the words.
+
+    Examples
+    --------
     >>> posts = ['there is rain, it is raining', 'there is snow and rain',
                  'there is no rain, it is snowing', 'there is nothing']
     >>> word_summary = extract_words(posts, ['rain', 'snow'], True)
@@ -1464,13 +1559,13 @@ 

Source code for advertools.extract

     words_to_extract = [word.lower() for word in words_to_extract]
 
     if entire_words_only:
-        regex = [r'\b' + x + r'\b' for x in words_to_extract]
-        word_regex = re.compile(r'|'.join(regex), re.IGNORECASE)
+        regex = [r"\b" + x + r"\b" for x in words_to_extract]
+        word_regex = re.compile(r"|".join(regex), re.IGNORECASE)
     else:
-        regex = [r'\S*' + x + r'\S*' for x in words_to_extract]
-        word_regex = re.compile('|'.join(regex), re.IGNORECASE)
+        regex = [r"\S*" + x + r"\S*" for x in words_to_extract]
+        word_regex = re.compile("|".join(regex), re.IGNORECASE)
 
-    return extract(text_list, word_regex, 'word')
+ return extract(text_list, word_regex, "word")
diff --git a/docs/_build/html/_modules/advertools/knowledge_graph.html b/docs/_build/html/_modules/advertools/knowledge_graph.html index c0fca647..f353b391 100644 --- a/docs/_build/html/_modules/advertools/knowledge_graph.html +++ b/docs/_build/html/_modules/advertools/knowledge_graph.html @@ -210,7 +210,7 @@

Source code for advertools.knowledge_graph

 
 For example if you run
 
->>> knowledge_graph(key=key, query=['google', 'bing'], languages=['en', 'fr', 'de'])
+>>> knowledge_graph(key=key, query=["google", "bing"], languages=["en", "fr", "de"])
 
 The function will send 2 (queries) x 3 languages = 6 requests.
 
@@ -222,9 +222,13 @@ 

Source code for advertools.knowledge_graph

 Let's check what "seo" and "search engine optimization" mean in different
 languages.
 
->>> seo = knowledge_graph(key=key, query=['seo', 'search engine optimization'], languages=['en', 'es', 'de'])
+>>> seo = knowledge_graph(
+...     key=key,
+...     query=["seo", "search engine optimization"],
+...     languages=["en", "es", "de"],
+... )
 >>> seo
-	query	                        languages	resultScore	    result.name	                     result.@type	                                   result.description
+        query	                        languages	resultScore	    result.name	                     result.@type	                                   result.description
 0	search engine optimization	de      	       3587	    Suchmaschinenoptimierung	         ['Thing']                                         nan
 1	search engine optimization	de      	        321	    Lokale Suchmaschinenoptimierung	 ['Thing']                                         nan
 2	search engine optimization	de      	        252	    Suchmaschinenmarketing	         ['Thing']                                         nan
@@ -253,7 +257,7 @@ 

Source code for advertools.knowledge_graph

 It's interesting to see how the same word can mean different things in
 different contexts.
 
-"""
+"""  # noqa: E501
 
 import logging
 from concurrent import futures
@@ -263,43 +267,53 @@ 

Source code for advertools.knowledge_graph

 
 from advertools.serp import _dict_product
 
-param_regex = '^query$|^ids$|^languages$|^types$|^prefix$|^limit$'
+param_regex = "^query$|^ids$|^languages$|^types$|^prefix$|^limit$"
+
 
 
[docs] -def knowledge_graph(key, query=None, ids=None, languages=None, types=None, - prefix=None, limit=None): +def knowledge_graph( + key, query=None, ids=None, languages=None, types=None, prefix=None, limit=None +): """Query Google's Knowledge Graph with any combination of parameters. Note that Google's documentation states that "This API is not suitable for use as a production-critical service." So please keep this in mind. - :param string key: Your Google developer key. - :param string query: A literal string to search for in the Knowledge Graph. - :param string ids: A list of entity IDs to search for in the Knowledge - Graph. - :param string languages: The list of language codes (defined in ISO 639) to - run the query with, for instance `en`. - :param string types: Restricts returned entities to those of the specified - types. For example, you can specify `Person` (as - defined in http://schema.org/Person) to restrict the - results to entities representing people. If multiple - types are specified, returned entities will contain - one or more of these types. - :param boolean prefix: Enables prefix (initial substring) match against - names and aliases of entities. For example, a - prefix `Jung` will match entities and aliases such - as `Jung`, `Jungle`, and `Jung-ho Kang`. - :param number limit: Limits the number of entities to be returned. Maximum - is 500. Default is 20. Requests with high limits have - a higher chance of timing out. + Parameters + ---------- + key : str + Your Google developer key. + query : str + A literal string to search for in the Knowledge Graph. + ids : list + A list of entity IDs to search for in the Knowledge Graph. + languages : list + The list of language codes (defined in ISO 639) to run the query with, for + instance `en`. + types : str + Restricts returned entities to those of the specified types. For example, you can + specify `Person` (as defined in http://schema.org/Person) to restrict the results + to entities representing people. If multiple types are specified, returned + entities will contain one or more of these types. + prefix : bool + Enables prefix (initial substring) match against names and aliases of entities. + For example, a prefix `Jung` will match entities and aliases such as `Jung`, + `Jungle`, and `Jung-ho Kang`. + limit : int + Limits the number of entities to be returned. Maximum is 500. Default is 20. + Requests with high limits have a higher chance of timing out. + + Returns + ------- + kg_df : pandas.DataFrame + A DataFrame of all responses. https://developers.google.com/knowledge-graph/reference/rest/v1 """ params = locals() - base_url = 'https://kgsearch.googleapis.com/v1/entities:search?' - supplied_params = {k: v for k, v in params.items() - if params[k] is not None} + base_url = "https://kgsearch.googleapis.com/v1/entities:search?" + supplied_params = {k: v for k, v in params.items() if params[k] is not None} for p in supplied_params: if isinstance(supplied_params[p], (str, int)): supplied_params[p] = [supplied_params[p]] @@ -310,22 +324,25 @@

Source code for advertools.knowledge_graph

     def single_request(param):
         nonlocal result_df
         resp = requests.get(base_url, params=param)
-        param_log = ', '.join([k + '=' + str(v) for k, v in param.items()])
-        logging.info(msg='Requesting: ' + param_log)
-        df = pd.json_normalize(resp.json(), record_path='itemListElement')
-        del param['key']
-        param_columns = {k: [v] if df.empty else v
-                         for k, v in param.items()}
+        param_log = ", ".join([k + "=" + str(v) for k, v in param.items()])
+        logging.info(msg="Requesting: " + param_log)
+        df = pd.json_normalize(resp.json(), record_path="itemListElement")
+        del param["key"]
+        param_columns = {k: [v] if df.empty else v for k, v in param.items()}
         df = df.assign(**param_columns)
         result_df = pd.concat([result_df, df], ignore_index=True)
 
     with futures.ThreadPoolExecutor(max_workers=16) as executor:
         executor.map(single_request, params_list)
 
-    reordered_df = pd.concat([result_df.filter(regex=param_regex),
-                              result_df.filter(regex=f'^(?!{param_regex})')],
-                             axis=1)
-    reordered_df['query_time'] = pd.Timestamp.utcnow()
+    reordered_df = pd.concat(
+        [
+            result_df.filter(regex=param_regex),
+            result_df.filter(regex=f"^(?!{param_regex})"),
+        ],
+        axis=1,
+    )
+    reordered_df["query_time"] = pd.Timestamp.utcnow()
     return reordered_df
diff --git a/docs/_build/html/_modules/advertools/logs.html b/docs/_build/html/_modules/advertools/logs.html index b8e440eb..03880602 100644 --- a/docs/_build/html/_modules/advertools/logs.html +++ b/docs/_build/html/_modules/advertools/logs.html @@ -140,12 +140,14 @@

Source code for advertools.logs

 
 >>> import advertools as adv
 >>> import pandas as pd
->>> adv.logs_to_df(log_file='access.log',
-...                output_file='access_logs.parquet',
-...                errors_file='log_errors.csv',
-...                log_format='common',
-...                fields=None)
->>> logs_df = pd.read_parquet('access_logs.parquet')
+>>> adv.logs_to_df(
+...     log_file="access.log",
+...     output_file="access_logs.parquet",
+...     errors_file="log_errors.csv",
+...     log_format="common",
+...     fields=None,
+... )
+>>> logs_df = pd.read_parquet("access_logs.parquet")
 
 How to run the :func:`logs_to_df` function:
 -------------------------------------------
@@ -201,7 +203,7 @@ 

Source code for advertools.logs

    easily add a ``hostname`` column to the original DataFrame.
 4. Parse and split URL columns into their respective components. Typically we
    have ``request`` which is the resource/URL requested, as well as ``referer``
-   , which shows us where the request was referred from. Function used: 
+   , which shows us where the request was referred from. Function used:
    :ref:`url_to_df <urlytics>`.
 5. Parse user agents if available. This allows us to analyze by user-agent
    family, operating system, bot/non-bot, version, and any other combination we
@@ -488,7 +490,7 @@ 

Source code for advertools.logs

 DataFrame:
 
 >>> import advertools as adv
->>> logs_df = adv.crawllogs_to_df('example.log')
+>>> logs_df = adv.crawllogs_to_df("example.log")
 
 
 The DataFrame might contain the following columns:
@@ -512,21 +514,22 @@ 

Source code for advertools.logs

 * `redirect_from`: The URL redirected from.
 * `blocked_urls`: The URLs that were not crawled due to robots.txt rules.
 
-"""
+"""  # noqa: E501
+
 import os
 import re
 from pathlib import Path
-from tempfile import TemporaryDirectory, TemporaryFile
+from tempfile import TemporaryDirectory
 
 import numpy as np
 import pandas as pd
 
 LOG_FORMATS = {
-    "common": r'^(?P<client>\S+) \S+ (?P<userid>\S+) \[(?P<datetime>[^\]]+)\] "(?P<method>[A-Z]+) (?P<request>[^ "]+)? HTTP/[0-9.]+" (?P<status>[0-9]{3}) (?P<size>[0-9]+|-)$',
-    "combined": r'^(?P<client>\S+) \S+ (?P<userid>\S+) \[(?P<datetime>[^\]]+)\] "(?P<method>[A-Z]+) (?P<request>[^ "]+)? HTTP/[0-9.]+" (?P<status>[0-9]{3}) (?P<size>[0-9]+|-) "(?P<referrer>[^"]*)" "(?P<useragent>[^"]*)"\s*$',
-    "common_with_vhost": r'^(?P<vhost>\S+) (?P<client>\S+) \S+ (?P<userid>\S+) \[(?P<datetime>[^\]]+)\] "(?P<method>[A-Z]+) (?P<request>[^ "]+)? HTTP/[0-9.]+" (?P<status>[0-9]{3}) (?P<size>[0-9]+|-)$',
-    "nginx_error": r"^(?P<datetime>\d{4}/\d\d/\d\d \d\d:\d\d:\d\d) \[(?P<level>[^\]]+)\] (?P<pid>\d+)#(?P<tid>\d+): (?P<counter>\*\d+ | )?(?P<message>.*)",
-    "apache_error": r"^(?P<datetime>\[[^\]]+\]) (?P<level>\[[^\]]+\]) \[pid (?P<pid>\d+)\] (?P<file>\S+):(?P<status> \S+| ):? \[client (?P<client>\S+)\] (?P<message>.*)",
+    "common": r'^(?P<client>\S+) \S+ (?P<userid>\S+) \[(?P<datetime>[^\]]+)\] "(?P<method>[A-Z]+) (?P<request>[^ "]+)? HTTP/[0-9.]+" (?P<status>[0-9]{3}) (?P<size>[0-9]+|-)$',  # noqa: E501
+    "combined": r'^(?P<client>\S+) \S+ (?P<userid>\S+) \[(?P<datetime>[^\]]+)\] "(?P<method>[A-Z]+) (?P<request>[^ "]+)? HTTP/[0-9.]+" (?P<status>[0-9]{3}) (?P<size>[0-9]+|-) "(?P<referrer>[^"]*)" "(?P<useragent>[^"]*)"\s*$',  # noqa: E501
+    "common_with_vhost": r'^(?P<vhost>\S+) (?P<client>\S+) \S+ (?P<userid>\S+) \[(?P<datetime>[^\]]+)\] "(?P<method>[A-Z]+) (?P<request>[^ "]+)? HTTP/[0-9.]+" (?P<status>[0-9]{3}) (?P<size>[0-9]+|-)$',  # noqa: E501
+    "nginx_error": r"^(?P<datetime>\d{4}/\d\d/\d\d \d\d:\d\d:\d\d) \[(?P<level>[^\]]+)\] (?P<pid>\d+)#(?P<tid>\d+): (?P<counter>\*\d+ | )?(?P<message>.*)",  # noqa: E501
+    "apache_error": r"^(?P<datetime>\[[^\]]+\]) (?P<level>\[[^\]]+\]) \[pid (?P<pid>\d+)\] (?P<file>\S+):(?P<status> \S+| ):? \[client (?P<client>\S+)\] (?P<message>.*)",  # noqa: E501
 }
 
 LOG_FIELDS = {
@@ -586,33 +589,39 @@ 

Source code for advertools.logs

     used. Check out ``adv.LOG_FORMATS`` and ``adv.LOG_FIELDS`` for the
     available formats and fields.
 
+    Parameters
+    ----------
+    log_file : str
+      The path to the log file.
+    output_file : str
+      The path to the desired output file. Must have a ".parquet" extension, and must
+      not have the same path as an existing file.
+    errors_file : str
+      The path where the parsing errors are stored. Any text format works, CSV is
+      recommended to easily open it with any CSV reader with the separator as "@@".
+    log_format : str
+      The name of one of the supported log formats, or a regex of your own format.
+    fields : list
+      A list of fields, which will become the names of columns in ``output_file``. Only
+      required if you provide a custom (regex) ``log_format``.
+    encoding : str
+      The encoding of the log file. It defaults to utf-8, but you might need to try
+      others in case of errors (latin-1, utf-16, etc.)
+
+    Examples
+    --------
     >>> import advertools as adv
     >>> import pandas as pd
-    >>> adv.logs_to_df(log_file='access.log',
-    ...                output_file='access_logs.parquet',
-    ...                errors_file='log_errors.csv',
-    ...                log_format='common',
-    ...                fields=None)
-    >>> logs_df = pd.read_parquet('access_logs.parquet')
+    >>> adv.logs_to_df(
+    ...     log_file="access.log",
+    ...     output_file="access_logs.parquet",
+    ...     errors_file="log_errors.csv",
+    ...     log_format="common",
+    ...     fields=None,
+    ... )
+    >>> logs_df = pd.read_parquet("access_logs.parquet")
 
     You can now analyze ``logs_df`` as a normal pandas DataFrame.
-
-    :param str log_file: The path to the log file.
-    :param str output_file: The path to the desired output file. Must have a
-                            ".parquet" extension, and must not have the same
-                            path as an existing file.
-    :param str errors_file: The path where the parsing errors are stored. Any
-                            text format works, CSV is recommended to easily
-                            open it with any CSV reader with the separator as
-                            "@@".
-    :param str log_format: Either the name of one of the supported log formats,
-                           or a regex of your own format.
-    :param str fields: A list of fields, which will become the names of columns
-                       in ``output_file``. Only required if you provide a
-                       custom (regex) ``log_format``.
-    :param str encoding: The encoding of the log file. It defaults to utf-8, but
-                         you might need to try others in case of errors
-                         (latin-1, utf-16, etc.)
     """
     if not output_file.endswith(".parquet"):
         raise ValueError(
@@ -683,7 +692,7 @@ 

Source code for advertools.logs

                   output_file='example.jl',
                   follow_links=True,
                   custom_settings={'LOG_FILE': 'example.log'})
-    >>> logs_df = adv.crawl_logs_to_df('example.log')
+    >>> logs_df = adv.crawl_logs_to_df("example.log")
 
 
     :param str logs_file_path: The path to the logs file.
diff --git a/docs/_build/html/_modules/advertools/reverse_dns_lookup.html b/docs/_build/html/_modules/advertools/reverse_dns_lookup.html
index c085dc49..296e38e9 100644
--- a/docs/_build/html/_modules/advertools/reverse_dns_lookup.html
+++ b/docs/_build/html/_modules/advertools/reverse_dns_lookup.html
@@ -232,9 +232,16 @@ 

Source code for advertools.reverse_dns_lookup

Examples -------- >>> import advertools as adv - >>> ip_list = ['66.249.66.194', '66.249.66.194', '66.249.66.194', - ... '66.249.66.91', '66.249.66.91', '130.185.74.243', - ... '31.56.96.51', '5.211.97.39'] + >>> ip_list = [ + ... "66.249.66.194", + ... "66.249.66.194", + ... "66.249.66.194", + ... "66.249.66.91", + ... "66.249.66.91", + ... "130.185.74.243", + ... "31.56.96.51", + ... "5.211.97.39", + ... ] >>> adv.reverse_dns_lookup([ip_list]) ==== ============== ======= =========== ====== ========== ================================= =========================== ============== ====================== @@ -257,7 +264,7 @@

Source code for advertools.reverse_dns_lookup

hosts = [] if system == "Darwin": with futures.ProcessPoolExecutor(max_workers=max_workers) as executor: - for ip, host in zip( + for _ip, host in zip( ip_list, executor.map(_single_request, count_df["ip_address"]) ): hosts.append(host) diff --git a/docs/_build/html/_modules/advertools/robotstxt.html b/docs/_build/html/_modules/advertools/robotstxt.html index 4e027154..ca16b7dd 100644 --- a/docs/_build/html/_modules/advertools/robotstxt.html +++ b/docs/_build/html/_modules/advertools/robotstxt.html @@ -306,7 +306,7 @@

Source code for advertools.robotstxt

    2  comment      and may only be conducted for the limited purpose contained in said  https://www.facebook.com/robots.txt  2022-02-12 00:48:58.951053+00:00
    3  comment      permission.                                                          https://www.facebook.com/robots.txt  2022-02-12 00:48:58.951053+00:00
    4  comment      See: http://www.facebook.com/apps/site_scraping_tos_terms.php        https://www.facebook.com/robots.txt  2022-02-12 00:48:58.951053+00:00
- ...  ...          ...                                                                  ...                                  ...                           
+ ...  ...          ...                                                                  ...                                  ...
  536  Allow        /ajax/pagelet/generic.php/PagePostsSectionPagelet                    https://www.facebook.com/robots.txt  2022-02-12 00:48:58.951053+00:00
  537  Allow        /careers/                                                            https://www.facebook.com/robots.txt  2022-02-12 00:48:58.951053+00:00
  538  Allow        /safetycheck/                                                        https://www.facebook.com/robots.txt  2022-02-12 00:48:58.951053+00:00
@@ -422,7 +422,7 @@ 

Source code for advertools.robotstxt

 
 I'll leave it to you to figure out why LinkedIn and Pinterest are not allowed
 to crawl the home page but Google and Apple are, because I have no clue!
-"""
+"""  # noqa: E501
 
 __all__ = ["robotstxt_to_df", "robotstxt_test"]
 
@@ -449,16 +449,33 @@ 

Source code for advertools.robotstxt

 def robotstxt_to_df(robotstxt_url, output_file=None):
     """Download the contents of ``robotstxt_url`` into a DataFrame
 
+    Parameters
+    ----------
+    robotstxt_url : str
+      One or more URLs of the robots.txt file(s)
+    output_file : str
+      Optional file path to save the robots.txt files, mainly useful for downloading >
+      500 files. The files are appended as soon as they are downloaded. Only the ".jl"
+      extension is supported.
+
+    Returns
+    -------
+    robotstxt_df : pandas.DataFrame
+      A DataFrame containing directives, their content, the URL and time of download
+
+    Examples
+    --------
     You can also use it to download multiple robots files by passing a list of
     URLs.
 
-    >>> robotstxt_to_df('https://www.twitter.com/robots.txt')
+    >>> robotstxt_to_df("https://www.twitter.com/robots.txt")
          directive content   	                 robotstxt_url	                   download_date
     0	User-agent	     *	https://www.twitter.com/robots.txt	2020-09-27 21:57:23.702814+00:00
     1	  Disallow	     /	https://www.twitter.com/robots.txt	2020-09-27 21:57:23.702814+00:00
 
-    >>> robotstxt_to_df(['https://www.google.com/robots.txt',
-    ...                  'https://www.twitter.com/robots.txt'])
+    >>> robotstxt_to_df(
+    ...     ["https://www.google.com/robots.txt", "https://www.twitter.com/robots.txt"]
+    ... )
            directive	                             content	    robotstxt_last_modified	                       robotstxt_url	                     download_date
     0	  User-agent	                                   *	  2021-01-11 21:00:00+00:00	   https://www.google.com/robots.txt	  2021-01-16 14:08:50.087985+00:00
     1	    Disallow	                             /search	  2021-01-11 21:00:00+00:00	   https://www.google.com/robots.txt	  2021-01-16 14:08:50.087985+00:00
@@ -477,25 +494,20 @@ 

Source code for advertools.robotstxt

     file as soon as they are downloaded, in case you lose your connection, or
     maybe your patience!
 
-    >>> robotstxt_to_df(['https://example.com/robots.txt',
-    ...                  'https://example.com/robots.txt',
-    ...                  'https://example.com/robots.txt'],
-    ...                 output_file='robots_output_file.jl')
+    >>> robotstxt_to_df(
+    ...     [
+    ...         "https://example.com/robots.txt",
+    ...         "https://example.com/robots.txt",
+    ...         "https://example.com/robots.txt",
+    ...     ],
+    ...     output_file="robots_output_file.jl",
+    ... )
 
     To open the file as a DataFrame:
 
     >>> import pandas as pd
-    >>> robotsfiles_df = pd.read_json('robots_output_file.jl', lines=True)
-
-    :param url robotstxt_url: One or more URLs of the robots.txt file(s)
-    :param str output_file: Optional file path to save the robots.txt files,
-                            mainly useful for downloading > 500 files. The
-                            files are appended as soon as they are downloaded.
-                            Only ".jl" extensions are supported.
-
-    :returns DataFrame robotstxt_df: A DataFrame containing directives, their
-                                     content, the URL and time of download
-    """
+    >>> robotsfiles_df = pd.read_json("robots_output_file.jl", lines=True)
+    """  # noqa: E501
     if output_file is not None and (not output_file.endswith(".jl")):
         raise ValueError("Please specify a file with a `.jl` extension.")
     if isinstance(robotstxt_url, (list, tuple, set, pd.Series)):
@@ -581,9 +593,28 @@ 

Source code for advertools.robotstxt

     All the combinations of :attr:`user_agents` and :attr:`urls` will be
     checked and the results returned in one DataFrame.
 
-    >>> robotstxt_test('https://facebook.com/robots.txt',
-    ...                user_agents=['*', 'Googlebot', 'Applebot'],
-    ...                urls=['/', '/bbc', '/groups', '/hashtag/'])
+    Parameters
+    ----------
+
+    robotstxt_url : str
+      The URL of robotx.txt file.
+    user_agents : str, list
+      One or more user agents.
+    urls : str, list
+      One or more paths (relative) or URLs (absolute) to check.
+
+    Returns
+    -------
+    robotstxt_test_df : pandas.DataFrame
+      A DataFrame with the test results per user-agent/rule combination.
+
+    Examples
+    --------
+    >>> robotstxt_test(
+    ...     "https://facebook.com/robots.txt",
+    ...     user_agents=["*", "Googlebot", "Applebot"],
+    ...     urls=["/", "/bbc", "/groups", "/hashtag/"],
+    ... )
                           robotstxt_url user_agent   url_path  can_fetch
     0   https://facebook.com/robots.txt          *          /      False
     1   https://facebook.com/robots.txt          *       /bbc      False
@@ -598,11 +629,6 @@ 

Source code for advertools.robotstxt

     10  https://facebook.com/robots.txt  Googlebot    /groups       True
     11  https://facebook.com/robots.txt  Googlebot  /hashtag/      False
 
-    :param url robotstxt_url: The URL of robotx.txt file
-    :param str,list user_agents: One or more user agents
-    :param str,list urls: One or more paths (relative) or URLs (absolute) to
-                           check
-    :return DataFrame robotstxt_test_df:
     """
     if not robotstxt_url.endswith("/robots.txt"):
         raise ValueError("Please make sure you enter a valid robots.txt URL")
diff --git a/docs/_build/html/_modules/advertools/serp.html b/docs/_build/html/_modules/advertools/serp.html
index cba6f544..9eb2df58 100644
--- a/docs/_build/html/_modules/advertools/serp.html
+++ b/docs/_build/html/_modules/advertools/serp.html
@@ -1585,7 +1585,7 @@ 

Source code for advertools.serp

     This is used to generate multiple queries out of
         possibly multiple arguments in serp_goog.
 
-    >>> d = {'a': [1], 'b': [2, 3, 4], 'c': [5, 6]}
+    >>> d = {"a": [1], "b": [2, 3, 4], "c": [5, 6]}
     >>> _dict_product(d)
     >>> [{'a': 1, 'b': 2, 'c': 5},
          {'a': 1, 'b': 2, 'c': 6},
@@ -1777,7 +1777,7 @@ 

Source code for advertools.serp

     The following function call will produce two queries:
     "hotel" in the USA, and "hotel" in France
 
-    >>> serp_goog(q='hotel', gl=['us', 'fr'], cx='YOUR_CX', key='YOUR_KEY')
+    >>> serp_goog(q="hotel", gl=["us", "fr"], cx="YOUR_CX", key="YOUR_KEY")
 
     The below function call will prouce four queries and make four requests:
 
diff --git a/docs/_build/html/_modules/advertools/sitemaps.html b/docs/_build/html/_modules/advertools/sitemaps.html
index 175886da..f5d097a3 100644
--- a/docs/_build/html/_modules/advertools/sitemaps.html
+++ b/docs/_build/html/_modules/advertools/sitemaps.html
@@ -169,7 +169,7 @@ 

Source code for advertools.sitemaps

 Another interesting thing you might want to do is to provide a robots.txt URL,
 and set `recursive=False` to get all available sitemap index files.
 
->>> sitemap_to_df('https://example.com/robots.txt', recursive=False)
+>>> sitemap_to_df("https://example.com/robots.txt", recursive=False)
 
 Let's now go through a quick example of what can be done with sitemaps. We can
 start by getting one of the BBC's sitemaps.
@@ -184,7 +184,7 @@ 

Source code for advertools.sitemaps

     :class: thebe, thebe-init
 
     import advertools as adv
-    
+
     bbc_sitemap = adv.sitemap_to_df('https://www.bbc.com/sitemaps/https-sitemap-com-archive-1.xml')
     bbc_sitemap.head(10)
 
@@ -211,7 +211,7 @@ 

Source code for advertools.sitemaps

 
     print(bbc_sitemap.shape)
     print(bbc_sitemap.dtypes)
-    
+
 .. code-block::
 
     (49999, 7)
@@ -519,7 +519,7 @@ 

Source code for advertools.sitemaps

 2954  https://www.wired.com/video/genres/transportation                                                               nan      nan                                                                                                                                                                                                                                     nan                                                                             nan                                                                                                                                                                                                                                                                                                                                         nan                                                                                                                    nan  nan                                            nan  NaT        https://www.wired.com/video/sitemap.xml  W/90b11f47f8b2ab57cb180cbd3c6f06f9            2.86199  2022-02-12 20:24:55.841851+00:00
 ====  ==============================================================================================================  =======  ======================================================================================================================================================================================================================================  ==============================================================================  ==========================================================================================================================================================================================================================================================================================================================================  ========================================================================================================  ================  =========================  =======================  =========  =======================================  ==================================  =================  ================================
 
-"""
+"""  # noqa: E501
 
 import logging
 from concurrent import futures
@@ -690,12 +690,12 @@ 

Source code for advertools.sitemaps

     if "lastmod" in sitemap_df:
         try:
             sitemap_df["lastmod"] = pd.to_datetime(sitemap_df["lastmod"], utc=True)
-        except Exception as e:
+        except Exception:
             pass
     if "priority" in sitemap_df:
         try:
             sitemap_df["priority"] = sitemap_df["priority"].astype(float)
-        except Exception as e:
+        except Exception:
             pass
     if resp_headers:
         etag_lastmod = {
diff --git a/docs/_build/html/_modules/advertools/spider.html b/docs/_build/html/_modules/advertools/spider.html
index cf1aeb3a..e1a570b9 100644
--- a/docs/_build/html/_modules/advertools/spider.html
+++ b/docs/_build/html/_modules/advertools/spider.html
@@ -134,8 +134,8 @@ 

Source code for advertools.spider

 
 There are two main approaches to crawl:
 
-1. **Discovery (spider mode):** You know the website to crawl, so you provide a ``url_list``
-   (one or more URLs), and you want the crawler to go through the whole
+1. **Discovery (spider mode):** You know the website to crawl, so you provide a
+   ``url_list`` (one or more URLs), and you want the crawler to go through the whole
    website(s) by following all available links.
 
 2. **Pre-determined (list mode):** You have a known set of URLs that you
@@ -373,18 +373,26 @@ 

Source code for advertools.spider

 of the links or the `href` attribute respectively. Similarly with XPath, you
 will need to append `/text()` or `/@href` to the selector to get the same.
 
->>> adv.crawl('https://advertools.readthedocs.io/en/master/advertools.spider.html',
-...           'output_file.jl',
-...           css_selectors={'sidebar_links': '.toctree-l1 .internal::text',
-...                          'sidebar_links_url': '.toctree-l1 .internal::attr(href)'})
+>>> adv.crawl(
+...     "https://advertools.readthedocs.io/en/master/advertools.spider.html",
+...     "output_file.jl",
+...     css_selectors={
+...         "sidebar_links": ".toctree-l1 .internal::text",
+...         "sidebar_links_url": ".toctree-l1 .internal::attr(href)",
+...     },
+... )
 
 Or, instead of ``css_selectors`` you can add a similar dictionary for the
 ``xpath_selectors`` argument:
 
->>> adv.crawl('https://advertools.readthedocs.io/en/master/advertools.spider.html',
-...           'output_file.jl',
-...           xpath_selectors={'sidebar_links': '//*[contains(concat( " ", @class, " " ), concat( " ", "toctree-l1", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "internal", " " ))]/text()',
-...                            'sidebar_links_url': '//*[contains(concat( " ", @class, " " ), concat( " ", "toctree-l1", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "internal", " " ))]/@href'})
+>>> adv.crawl(
+...     "https://advertools.readthedocs.io/en/master/advertools.spider.html",
+...     "output_file.jl",
+...     xpath_selectors={
+...         "sidebar_links": '//*[contains(concat( " ", @class, " " ), concat( " ", "toctree-l1", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "internal", " " ))]/text()',
+...         "sidebar_links_url": '//*[contains(concat( " ", @class, " " ), concat( " ", "toctree-l1", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "internal", " " ))]/@href',
+...     },
+... )
 
 Customizing the Crawling Behavior while Following Links
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -501,22 +509,27 @@ 

Source code for advertools.spider

 
 A very simple dictionary to be added to your function call:
 
->>> adv.crawl('http://exmaple.com', 'outpuf_file.jl',
-...           custom_settings={'CLOSESPIDER_PAGECOUNT': 100,
-...                            'CONCURRENT_REQUESTS_PER_DOMAIN': 1,
-...                            'USER_AGENT': 'custom-user-agent'})
+>>> adv.crawl(
+...     "http://exmaple.com",
+...     "outpuf_file.jl",
+...     custom_settings={
+...         "CLOSESPIDER_PAGECOUNT": 100,
+...         "CONCURRENT_REQUESTS_PER_DOMAIN": 1,
+...         "USER_AGENT": "custom-user-agent",
+...     },
+... )
 
 Please refer to the `spider settings documentation <https://docs.scrapy.org/en/latest/topics/settings.html>`_
 for the full details.
 
-"""
+"""  # noqa: E501
+
 import datetime
 import json
 import logging
 import platform
 import re
 import subprocess
-from functools import reduce
 from urllib.parse import parse_qs, urlparse, urlsplit
 
 import pandas as pd
@@ -536,25 +549,43 @@ 

Source code for advertools.spider

 
 from advertools import __version__ as adv_version
 
-spider_path = adv.__path__[0] + '/spider.py'
+spider_path = adv.__path__[0] + "/spider.py"
 
-user_agent = f'advertools/{adv_version}'
+user_agent = f"advertools/{adv_version}"
 
-BODY_TEXT_SELECTOR = '//body//span//text() | //body//p//text() | //body//li//text()'
+BODY_TEXT_SELECTOR = "//body//span//text() | //body//p//text() | //body//li//text()"
 
 _IMG_ATTRS = {
-    'alt', 'crossorigin', 'decoding', 'fetchpriority', 'height', 'ismap',
-    'loading', 'referrerpolicy', 'sizes', 'src', 'srcset', 'usemap', 'width',
+    "alt",
+    "crossorigin",
+    "decoding",
+    "fetchpriority",
+    "height",
+    "ismap",
+    "loading",
+    "referrerpolicy",
+    "sizes",
+    "src",
+    "srcset",
+    "usemap",
+    "width",
     # Depracated tags, also included for completeness and QA:
-    'align', 'border', 'hspace', 'longdesc', 'name', 'vspace',
-    }
+    "align",
+    "border",
+    "hspace",
+    "longdesc",
+    "name",
+    "vspace",
+}
 
 
-def _crawl_or_not(url,
-                  exclude_url_params=None,
-                  include_url_params=None,
-                  exclude_url_regex=None,
-                  include_url_regex=None):
+def _crawl_or_not(
+    url,
+    exclude_url_params=None,
+    include_url_params=None,
+    exclude_url_regex=None,
+    include_url_regex=None,
+):
     qs = parse_qs(urlsplit(url).query)
     supplied_conditions = []
     if exclude_url_params is not None:
@@ -579,23 +610,27 @@ 

Source code for advertools.spider

         supplied_conditions.append(include_pattern_matched)
     return all(supplied_conditions)
 
+
 def _extract_images(response):
-    page_has_images = response.xpath('//img')
+    page_has_images = response.xpath("//img")
     if page_has_images:
-        img_df = pd.DataFrame([x.attrib for x in response.xpath('//img')])
-        if 'src' in img_df:
-            img_df['src'] = [response.urljoin(url) if isinstance(url, str) else url for url in img_df['src']]
-        img_df = img_df.apply(lambda col: col.fillna('').str.cat(sep='@@')).to_frame().T
+        img_df = pd.DataFrame([x.attrib for x in response.xpath("//img")])
+        if "src" in img_df:
+            img_df["src"] = [
+                response.urljoin(url) if isinstance(url, str) else url
+                for url in img_df["src"]
+            ]
+        img_df = img_df.apply(lambda col: col.fillna("").str.cat(sep="@@")).to_frame().T
         img_df = img_df[img_df.columns.intersection(_IMG_ATTRS)]
-        img_df = img_df.add_prefix('img_')
-        d = img_df.to_dict('records')[0]
+        img_df = img_df.add_prefix("img_")
+        d = img_df.to_dict("records")[0]
         return d
     return {}
 
 
 def get_max_cmd_len():
     system = platform.system()
-    cmd_dict = {'Windows': 7000, 'Linux': 100000, 'Darwin': 100000}
+    cmd_dict = {"Windows": 7000, "Linux": 100000, "Darwin": 100000}
     if system in cmd_dict:
         return cmd_dict[system]
     return 6000
@@ -613,65 +648,62 @@ 

Source code for advertools.spider

         base_url = get_base_url(response)
         if self.restrict_xpaths:
             docs = [
-                subdoc
-                for x in self.restrict_xpaths
-                for subdoc in response.xpath(x)
+                subdoc for x in self.restrict_xpaths for subdoc in response.xpath(x)
             ]
         else:
             docs = [response.selector]
         all_links = []
         for doc in docs:
-            links = self._extract_links(doc, response.url, response.encoding,
-                                        base_url)
+            links = self._extract_links(doc, response.url, response.encoding, base_url)
             all_links.extend(self._process_links(links))
         return all_links
 
 
 le = MyLinkExtractor(unique=False)
-le_nav = MyLinkExtractor(unique=False, restrict_xpaths='//nav')
-le_header = MyLinkExtractor(unique=False, restrict_xpaths='//header')
-le_footer = MyLinkExtractor(unique=False, restrict_xpaths='//footer')
+le_nav = MyLinkExtractor(unique=False, restrict_xpaths="//nav")
+le_header = MyLinkExtractor(unique=False, restrict_xpaths="//header")
+le_footer = MyLinkExtractor(unique=False, restrict_xpaths="//footer")
 
 crawl_headers = {
-    'url',
-    'title',
-    'meta_desc',
-    'viewport',
-    'charset',
-    'alt_href',
-    'alt_hreflang',
-    'h1',
-    'h2',
-    'h3',
-    'h4',
-    'h5',
-    'h6',
-    'canonical',
-    'body_text',
-    'size',
-    'download_timeout',
-    'download_slot',
-    'download_latency',
-    'redirect_times',
-    'redirect_ttl',
-    'redirect_urls',
-    'redirect_reasons',
-    'depth',
-    'status',
-    'links_url',
-    'links_text',
-    'links_nofollow',
-    'img_src',
-    'img_alt',
-    'ip_address',
-    'crawl_time',
-    'blocked_by_robotstxt',
-    'jsonld_errors',
-    'request_headers_accept',
-    'request_headers_accept-language',
-    'request_headers_user-agent',
-    'request_headers_accept-encoding',
-    'request_headers_cookie',
+    "url",
+    "title",
+    "meta_desc",
+    "viewport",
+    "charset",
+    "alt_href",
+    "alt_hreflang",
+    "h1",
+    "h2",
+    "h3",
+    "h4",
+    "h5",
+    "h6",
+    "canonical",
+    "body_text",
+    "size",
+    "download_timeout",
+    "download_slot",
+    "download_latency",
+    "redirect_times",
+    "redirect_ttl",
+    "redirect_urls",
+    "redirect_reasons",
+    "depth",
+    "status",
+    "links_url",
+    "links_text",
+    "links_nofollow",
+    "img_src",
+    "img_alt",
+    "ip_address",
+    "crawl_time",
+    "blocked_by_robotstxt",
+    "jsonld_errors",
+    "request_headers_accept",
+    "request_headers_accept-language",
+    "request_headers_user-agent",
+    "request_headers_accept-encoding",
+    "request_headers_cookie",
 }
 
 
@@ -698,11 +730,11 @@ 

Source code for advertools.spider

     item_count = dict.fromkeys(items, 0)
     numbered_items = []
     for item in items:
-        numbered_items.append(item + '_' + str(item_count[item]))
+        numbered_items.append(item + "_" + str(item_count[item]))
         item_count[item] += 1
     for i, num_item in enumerate(numbered_items):
-        split_number = num_item.rsplit('_', maxsplit=1)
-        if split_number[1] == '0':
+        split_number = num_item.rsplit("_", maxsplit=1)
+        if split_number[1] == "0":
             numbered_items[i] = split_number[0]
     return numbered_items
 
@@ -711,9 +743,9 @@ 

Source code for advertools.spider

     try:
         df = json_normalize(jsonobj)
         if i:
-            df = df.add_prefix('jsonld_{}_'.format(i))
+            df = df.add_prefix("jsonld_{}_".format(i))
         else:
-            df = df.add_prefix('jsonld_')
+            df = df.add_prefix("jsonld_")
         return dict(zip(df.columns, df.values[0]))
     except Exception as e:
         logger = logging.getLogger(__name__)
@@ -722,61 +754,65 @@ 

Source code for advertools.spider

 
 
 tags_xpaths = {
-    'title': '//title/text()',
-    'meta_desc': '//meta[@name="description"]/@content',
-    'viewport': '//meta[@name="viewport"]/@content',
-    'charset': '//meta[@charset]/@charset',
-    'h1': '//h1',
-    'h2': '//h2',
-    'h3': '//h3',
-    'h4': '//h4',
-    'h5': '//h5',
-    'h6': '//h6',
-    'canonical': '//link[@rel="canonical"]/@href',
-    'alt_href': '//link[@rel="alternate"]/@href',
-    'alt_hreflang': '//link[@rel="alternate"]/@hreflang',
+    "title": "//title/text()",
+    "meta_desc": '//meta[@name="description"]/@content',
+    "viewport": '//meta[@name="viewport"]/@content',
+    "charset": "//meta[@charset]/@charset",
+    "h1": "//h1",
+    "h2": "//h2",
+    "h3": "//h3",
+    "h4": "//h4",
+    "h5": "//h5",
+    "h6": "//h6",
+    "canonical": '//link[@rel="canonical"]/@href',
+    "alt_href": '//link[@rel="alternate"]/@href',
+    "alt_hreflang": '//link[@rel="alternate"]/@hreflang',
 }
 
 
 def _extract_content(resp, **tags_xpaths):
     d = {}
     for tag, xpath in tags_xpaths.items():
-        if not tag.startswith('h'):
-            value = '@@'.join(resp.xpath(xpath).getall())
+        if not tag.startswith("h"):
+            value = "@@".join(resp.xpath(xpath).getall())
             if value:
                 d.update({tag: value})
         else:
-            value = '@@'.join([h.root.text_content()
-                               for h in resp.xpath(xpath)])
+            value = "@@".join([h.root.text_content() for h in resp.xpath(xpath)])
             if value:
                 d.update({tag: value})
     return d
 
 
 class SEOSitemapSpider(Spider):
-    name = 'seo_spider'
+    name = "seo_spider"
     follow_links = False
     skip_url_params = False
     css_selectors = {}
     xpath_selectors = {}
     custom_settings = {
-        'USER_AGENT': user_agent,
-        'ROBOTSTXT_OBEY': True,
-        'HTTPERROR_ALLOW_ALL': True,
+        "USER_AGENT": user_agent,
+        "ROBOTSTXT_OBEY": True,
+        "HTTPERROR_ALLOW_ALL": True,
     }
 
-
-    def __init__(self, url_list, follow_links=False,
-                 allowed_domains=None,
-                 exclude_url_params=None,
-                 include_url_params=None,
-                 exclude_url_regex=None,
-                 include_url_regex=None,
-                 css_selectors=None,
-                 xpath_selectors=None, *args, **kwargs):
+    def __init__(
+        self,
+        url_list,
+        follow_links=False,
+        allowed_domains=None,
+        exclude_url_params=None,
+        include_url_params=None,
+        exclude_url_regex=None,
+        include_url_regex=None,
+        css_selectors=None,
+        xpath_selectors=None,
+        *args,
+        **kwargs,
+    ):
         super().__init__(*args, **kwargs)
-        self.start_urls = json.loads(json.dumps(url_list.split(',')))
-        self.allowed_domains = json.loads(json.dumps(allowed_domains.split(',')))
+        self.start_urls = json.loads(json.dumps(url_list.split(",")))
+        self.allowed_domains = json.loads(json.dumps(allowed_domains.split(",")))
         self.follow_links = eval(json.loads(json.dumps(follow_links)))
         self.exclude_url_params = eval(json.loads(json.dumps(exclude_url_params)))
         self.include_url_params = eval(json.loads(json.dumps(include_url_params)))
@@ -799,9 +835,11 @@ 

Source code for advertools.spider

     def errback(self, failure):
         if not failure.check(scrapy.exceptions.IgnoreRequest):
             self.logger.error(repr(failure))
-            yield {'url': failure.request.url,
-                   'crawl_time': datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'),
-                   'errors': repr(failure)}
+            yield {
+                "url": failure.request.url,
+                "crawl_time": datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S"),
+                "errors": repr(failure),
+            }
 
     def parse(self, response):
         links = le.extract_links(response)
@@ -812,77 +850,103 @@ 

Source code for advertools.spider

 
         if links:
             parsed_links = dict(
-                links_url='@@'.join(link.url for link in links),
-                links_text='@@'.join(link.text for link in links),
-                links_nofollow='@@'.join(str(link.nofollow) for link in links),
+                links_url="@@".join(link.url for link in links),
+                links_text="@@".join(link.text for link in links),
+                links_nofollow="@@".join(str(link.nofollow) for link in links),
             )
         else:
             parsed_links = {}
         if nav_links:
             parsed_nav_links = dict(
-                nav_links_url='@@'.join(link.url for link in nav_links),
-                nav_links_text='@@'.join(link.text for link in nav_links),
-                nav_links_nofollow='@@'.join(str(link.nofollow)
-                                             for link in nav_links),
+                nav_links_url="@@".join(link.url for link in nav_links),
+                nav_links_text="@@".join(link.text for link in nav_links),
+                nav_links_nofollow="@@".join(str(link.nofollow) for link in nav_links),
             )
         else:
             parsed_nav_links = {}
         if header_links:
             parsed_header_links = dict(
-                header_links_url='@@'.join(link.url
-                                           for link in header_links),
-                header_links_text='@@'.join(link.text
-                                            for link in header_links),
-                header_links_nofollow='@@'.join(str(link.nofollow)
-                                                for link in header_links),
+                header_links_url="@@".join(link.url for link in header_links),
+                header_links_text="@@".join(link.text for link in header_links),
+                header_links_nofollow="@@".join(
+                    str(link.nofollow) for link in header_links
+                ),
             )
         else:
             parsed_header_links = {}
         if footer_links:
             parsed_footer_links = dict(
-                footer_links_url='@@'.join(link.url for link in footer_links),
-                footer_links_text='@@'.join(link.text
-                                            for link in footer_links),
-                footer_links_nofollow='@@'.join(str(link.nofollow)
-                                                for link in footer_links),
+                footer_links_url="@@".join(link.url for link in footer_links),
+                footer_links_text="@@".join(link.text for link in footer_links),
+                footer_links_nofollow="@@".join(
+                    str(link.nofollow) for link in footer_links
+                ),
             )
         else:
             parsed_footer_links = {}
         if self.css_selectors:
-            css_selectors = {key: '@@'.join(response.css('{}'.format(val)).getall())
-                             for key, val in self.css_selectors.items()}
+            css_selectors = {
+                key: "@@".join(response.css("{}".format(val)).getall())
+                for key, val in self.css_selectors.items()
+            }
             css_selectors = {k: v for k, v in css_selectors.items() if v}
         else:
             css_selectors = {}
 
         if self.xpath_selectors:
-            xpath_selectors = {key: '@@'.join(response.xpath('{}'.format(val)).getall())
-                               for key, val in self.xpath_selectors.items()}
+            xpath_selectors = {
+                key: "@@".join(response.xpath("{}".format(val)).getall())
+                for key, val in self.xpath_selectors.items()
+            }
             xpath_selectors = {k: v for k, v in xpath_selectors.items() if v}
         else:
             xpath_selectors = {}
-        canonical = {'canonical': '@@'.join(response.css('link[rel="canonical"]::attr(href)').getall())}
-        canonical = canonical if canonical.get('canonical') else {}
-        alt_href = {'alt_href': '@@'.join(response.css('link[rel=alternate]::attr(href)').getall())}
-        alt_href = alt_href if alt_href.get('alt_href') else {}
-        alt_hreflang = {'alt_hreflang': '@@'.join(response.css('link[rel=alternate]::attr(hreflang)').getall())}
-        alt_hreflang = alt_hreflang if alt_hreflang.get('alt_hreflang') else {}
-        og_props = response.xpath('//meta[starts-with(@property, "og:")]/@property').getall()
-        og_content = response.xpath('//meta[starts-with(@property, "og:")]/@content').getall()
+        canonical = {
+            "canonical": "@@".join(
+                response.css('link[rel="canonical"]::attr(href)').getall()
+            )
+        }
+        canonical = canonical if canonical.get("canonical") else {}
+        alt_href = {
+            "alt_href": "@@".join(
+                response.css("link[rel=alternate]::attr(href)").getall()
+            )
+        }
+        alt_href = alt_href if alt_href.get("alt_href") else {}
+        alt_hreflang = {
+            "alt_hreflang": "@@".join(
+                response.css("link[rel=alternate]::attr(hreflang)").getall()
+            )
+        }
+        alt_hreflang = alt_hreflang if alt_hreflang.get("alt_hreflang") else {}
+        og_props = response.xpath(
+            '//meta[starts-with(@property, "og:")]/@property'
+        ).getall()
+        og_content = response.xpath(
+            '//meta[starts-with(@property, "og:")]/@content'
+        ).getall()
         if og_props and og_content:
             og_props = _numbered_duplicates(og_props)
             open_graph = dict(zip(og_props, og_content))
         else:
             open_graph = {}
-        twtr_names = response.xpath('//meta[starts-with(@name, "twitter:")]/@name').getall()
-        twtr_content = response.xpath('//meta[starts-with(@name, "twitter:")]/@content').getall()
+        twtr_names = response.xpath(
+            '//meta[starts-with(@name, "twitter:")]/@name'
+        ).getall()
+        twtr_content = response.xpath(
+            '//meta[starts-with(@name, "twitter:")]/@content'
+        ).getall()
         if twtr_names and twtr_content:
             twtr_card = dict(zip(twtr_names, twtr_content))
         else:
             twtr_card = {}
         try:
-            ld = [json.loads(s.replace('\r', '').replace('\n', ' ')) for s in
-                  response.css('script[type="application/ld+json"]::text').getall()]
+            ld = [
+                json.loads(s.replace("\r", "").replace("\n", " "))
+                for s in response.css(
+                    'script[type="application/ld+json"]::text'
+                ).getall()
+            ]
             if not ld:
                 jsonld = {}
             else:
@@ -896,9 +960,10 @@ 

Source code for advertools.spider

                     for norm in ld_norm:
                         jsonld.update(**norm)
         except Exception as e:
-            jsonld = {'jsonld_errors': str(e)}
-            self.logger.exception(' '.join([str(e), str(response.status),
-                                            response.url]))
+            jsonld = {"jsonld_errors": str(e)}
+            self.logger.exception(
+                " ".join([str(e), str(response.status), response.url])
+            )
         page_content = _extract_content(response, **tags_xpaths)
 
         yield dict(
@@ -907,12 +972,14 @@ 

Source code for advertools.spider

             **open_graph,
             **twtr_card,
             **jsonld,
-            body_text=' '.join(response.xpath(BODY_TEXT_SELECTOR).extract()),
+            body_text=" ".join(response.xpath(BODY_TEXT_SELECTOR).extract()),
             size=len(response.body),
             **css_selectors,
             **xpath_selectors,
-            **{k: '@@'.join(str(val) for val in v) if isinstance(v, list)
-               else v for k, v in response.meta.items()},
+            **{
+                k: "@@".join(str(val) for val in v) if isinstance(v, list) else v
+                for k, v in response.meta.items()
+            },
             status=response.status,
             **parsed_links,
             **parsed_nav_links,
@@ -920,11 +987,15 @@ 

Source code for advertools.spider

             **parsed_footer_links,
             **images,
             ip_address=str(response.ip_address),
-            crawl_time=datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'),
-            **{'resp_headers_' + k: v
-               for k, v in response.headers.to_unicode_dict().items()},
-            **{'request_headers_' + k: v
-               for k, v in response.request.headers.to_unicode_dict().items()},
+            crawl_time=datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S"),
+            **{
+                "resp_headers_" + k: v
+                for k, v in response.headers.to_unicode_dict().items()
+            },
+            **{
+                "request_headers_" + k: v
+                for k, v in response.request.headers.to_unicode_dict().items()
+            },
         )
         if self.follow_links:
             next_pages = [link.url for link in links]
@@ -935,88 +1006,95 @@ 

Source code for advertools.spider

                         exclude_url_params=self.exclude_url_params,
                         include_url_params=self.include_url_params,
                         exclude_url_regex=self.exclude_url_regex,
-                        include_url_regex=self.include_url_regex)
+                        include_url_regex=self.include_url_regex,
+                    )
                     if cond:
-                        yield Request(page, callback=self.parse,
-                                      errback=self.errback)
+                        yield Request(page, callback=self.parse, errback=self.errback)
                     # if self.skip_url_params and urlparse(page).query:
                     #     continue
 
 
 
[docs] -def crawl(url_list, output_file, follow_links=False, - allowed_domains=None, - exclude_url_params=None, - include_url_params=None, - exclude_url_regex=None, - include_url_regex=None, - css_selectors=None, xpath_selectors=None, custom_settings=None, - ): +def crawl( + url_list, + output_file, + follow_links=False, + allowed_domains=None, + exclude_url_params=None, + include_url_params=None, + exclude_url_regex=None, + include_url_regex=None, + css_selectors=None, + xpath_selectors=None, + custom_settings=None, +): """ - Crawl a website's URLs based on the given :attr:`url_list` - - :param url,list url_list: One or more URLs to crawl. If ``follow_links`` - is True, the crawler will start with these URLs and - follow all links on pages recursively. - :param str output_file: The path to the output of the crawl. Jsonlines only - is supported to allow for dynamic values. Make sure - your file ends with ".jl", e.g. `output_file.jl`. - :param bool follow_links: Defaults to False. Whether or not to follow links - on crawled pages. - :param list,bool exclude_url_params: A list of URL parameters to exclude - while following links. If a link - contains any of those parameters, - don't follow it. Setting it to - ``True`` will exclude links - containing any parameter. - :param list include_url_params: A list of URL parameters to include while - following links. If a link contains any of - those parameters, follow it. Having the - same parmeters to include and exclude - raises an error. - :param str exclude_url_regex: A regular expression of a URL pattern to - exclude while following links. If a link - matches the regex don't follow it. - :param str include_url_regex: A regular expression of a URL pattern to - include while following links. If a link - matches the regex follow it. - :param dict css_selectors: A dictionary mapping names to CSS selectors. The - names will become column headers, and the - selectors will be used to extract the required - data/content. - :param dict xpath_selectors: A dictionary mapping names to XPath selectors. - The names will become column headers, and the - selectors will be used to extract the required - data/content. - :param dict custom_settings: A dictionary of optional custom settings that - you might want to add to the spider's - functionality. There are over 170 settings for - all kinds of options. For details please - refer to the `spider settings <https://docs.scrapy.org/en/latest/topics/settings.html>`_ - documentation. - :param list allowed_domains: (optional) A list of the allowed domains to - crawl. This ensures that the crawler does not - attempt to crawl the whole web. If not - specified, it defaults to the domains of the - URLs provided in ``url_list`` and all their - sub-domains. You can also specify a list of - sub-domains, if you want to only crawl those. - :Examples: - + Crawl a website of a list of URLs based on the supplied options. + + Parameters + ---------- + url_list : url, list + One or more URLs to crawl. If ``follow_links`` is True, the crawler will start + with these URLs and follow all links on pages recursively. + output_file : str + The path to the output of the crawl. Jsonlines only is supported to allow for + dynamic values. Make sure your file ends with ".jl", e.g. `output_file.jl`. + follow_links : bool + Defaults to False. Whether or not to follow links on crawled pages. + exclude_url_params : list, bool + A list of URL parameters to exclude while following links. If a link contains any + of those parameters, don't follow it. Setting it to ``True`` will exclude links + containing any parameter. + include_url_params : list + A list of URL parameters to include while following links. If a link contains any + of those parameters, follow it. Having the same parmeters to include and exclude + raises an error. + exclude_url_regex : str + A regular expression of a URL pattern to exclude while following links. If a link + matches the regex don't follow it. + include_url_regex : str + A regular expression of a URL pattern to include while following links. If a link + matches the regex follow it. + css_selectors : dict + A dictionary mapping names to CSS selectors. The names will become column headers, + and the selectors will be used to extract the required data/content. + xpath_selectors : dict + A dictionary mapping names to XPath selectors. The names will become column + headers, and the selectors will be used to extract the required data/content. + custom_settings : dict + A dictionary of optional custom settings that you might want to add to the + spider's functionality. There are over 170 settings for all kinds of options. For + details please refer to the `spider settings <https://docs.scrapy.org/en/latest/topics/settings.html>`_ + documentation. + allowed_domains : list + A list of the allowed domains to crawl. This ensures that the crawler does not + attempt to crawl the whole web. If not specified, it defaults to the domains of + the URLs provided in ``url_list`` and all their sub-domains. You can also specify + a list of sub-domains, if you want to only crawl those. + + Examples + -------- Crawl a website and let the crawler discover as many pages as available >>> import advertools as adv - >>> adv.crawl('http://example.com', 'output_file.jl', follow_links=True) + >>> adv.crawl("http://example.com", "output_file.jl", follow_links=True) >>> import pandas as pd - >>> crawl_df = pd.read_json('output_file.jl', lines=True) + >>> crawl_df = pd.read_json("output_file.jl", lines=True) Crawl a known set of pages (on a single or multiple sites) without following links (just crawl the specified pages) or "list mode": - >>> adv.crawl(['http://exmaple.com/product', 'http://exmaple.com/product2', - ... 'https://anotherexample.com', 'https://anotherexmaple.com/hello'], - ... 'output_file.jl', follow_links=False) + >>> adv.crawl( + ... [ + ... "http://exmaple.com/product", + ... "http://exmaple.com/product2", + ... "https://anotherexample.com", + ... "https://anotherexmaple.com/hello", + ... ], + ... "output_file.jl", + ... follow_links=False, + ... ) Crawl a website, and in addition to standard SEO elements, also get the required CSS selectors. @@ -1025,73 +1103,105 @@

Source code for advertools.spider

     or the `href` attribute if you are working with links (and all other
     selectors).
 
-    >>> adv.crawl('http://example.com', 'output_file.jl',
-    ...           css_selectors={'price': '.a-color-price::text',
-    ...                          'author': '.contributorNameID::text',
-    ...                          'author_url': '.contributorNameID::attr(href)'})
+    >>> adv.crawl(
+    ...     "http://example.com",
+    ...     "output_file.jl",
+    ...     css_selectors={
+    ...         "price": ".a-color-price::text",
+    ...         "author": ".contributorNameID::text",
+    ...         "author_url": ".contributorNameID::attr(href)",
+    ...     },
+    ... )
+
     """
     if isinstance(url_list, str):
         url_list = [url_list]
     if isinstance(allowed_domains, str):
         allowed_domains = [allowed_domains]
-    if output_file.rsplit('.')[-1] != 'jl':
-        raise ValueError("Please make sure your output_file ends with '.jl'.\n"
-                         "For example:\n"
-                         "{}.jl".format(output_file.rsplit('.', maxsplit=1)[0]))
+    if output_file.rsplit(".")[-1] != "jl":
+        raise ValueError(
+            "Please make sure your output_file ends with '.jl'.\n"
+            "For example:\n"
+            "{}.jl".format(output_file.rsplit(".", maxsplit=1)[0])
+        )
     if (xpath_selectors is not None) and (css_selectors is not None):
         css_xpath = set(xpath_selectors).intersection(css_selectors)
         if css_xpath:
-            raise ValueError("Please make sure you don't set common keys for"
-                             "`css_selectors` and `xpath_selectors`.\n"
-                             "Duplicated keys: {}".format(css_xpath))
+            raise ValueError(
+                "Please make sure you don't set common keys for"
+                "`css_selectors` and `xpath_selectors`.\n"
+                "Duplicated keys: {}".format(css_xpath)
+            )
     for selector in [xpath_selectors, css_selectors]:
         if selector is not None and set(selector).intersection(crawl_headers):
-            raise ValueError("Please make sure you don't use names of default "
-                             "headers. Avoid using any of these as keys: \n"
-                             "{}".format(sorted(crawl_headers)))
+            raise ValueError(
+                "Please make sure you don't use names of default "
+                "headers. Avoid using any of these as keys: \n"
+                "{}".format(sorted(crawl_headers))
+            )
     if allowed_domains is None:
         allowed_domains = {urlparse(url).netloc for url in url_list}
     if exclude_url_params is not None and include_url_params is not None:
         if exclude_url_params is True:
-            raise ValueError("Please make sure you don't exclude and include "
-                             "parameters at the same time.")
+            raise ValueError(
+                "Please make sure you don't exclude and include "
+                "parameters at the same time."
+            )
         common_params = set(exclude_url_params).intersection(include_url_params)
         if common_params:
-            raise ValueError(f"Please make sure you don't include and exclude "
-                             f"the same parameters.\n"
-                             f"Common parameters entered: "
-                             f"{', '.join(common_params)}")
+            raise ValueError(
+                f"Please make sure you don't include and exclude "
+                f"the same parameters.\n"
+                f"Common parameters entered: "
+                f"{', '.join(common_params)}"
+            )
     if include_url_regex is not None and exclude_url_regex is not None:
         if include_url_regex == exclude_url_regex:
-            raise ValueError(f"Please make sure you don't include and exclude "
-                             f"the same regex pattern.\n"
-                             f"You entered '{include_url_regex}'.")
+            raise ValueError(
+                f"Please make sure you don't include and exclude "
+                f"the same regex pattern.\n"
+                f"You entered '{include_url_regex}'."
+            )
 
     settings_list = []
     if custom_settings is not None:
         for key, val in custom_settings.items():
             if isinstance(val, (dict, list, set, tuple)):
-                setting = '='.join([key, json.dumps(val)])
+                setting = "=".join([key, json.dumps(val)])
             else:
-                setting = '='.join([key, str(val)])
-            settings_list.extend(['-s', setting])
-
-    command = ['scrapy', 'runspider', spider_path,
-               '-a', 'url_list=' + ','.join(url_list),
-               '-a', 'allowed_domains=' + ','.join(allowed_domains),
-               '-a', 'follow_links=' + str(follow_links),
-               '-a', 'exclude_url_params=' + str(exclude_url_params),
-               '-a', 'include_url_params=' + str(include_url_params),
-               '-a', 'exclude_url_regex=' + str(exclude_url_regex),
-               '-a', 'include_url_regex=' + str(include_url_regex),
-               '-a', 'css_selectors=' + str(css_selectors),
-               '-a', 'xpath_selectors=' + str(xpath_selectors),
-               '-o', output_file] + settings_list
-    if len(','.join(url_list)) > MAX_CMD_LENGTH:
+                setting = "=".join([key, str(val)])
+            settings_list.extend(["-s", setting])
+
+    command = [
+        "scrapy",
+        "runspider",
+        spider_path,
+        "-a",
+        "url_list=" + ",".join(url_list),
+        "-a",
+        "allowed_domains=" + ",".join(allowed_domains),
+        "-a",
+        "follow_links=" + str(follow_links),
+        "-a",
+        "exclude_url_params=" + str(exclude_url_params),
+        "-a",
+        "include_url_params=" + str(include_url_params),
+        "-a",
+        "exclude_url_regex=" + str(exclude_url_regex),
+        "-a",
+        "include_url_regex=" + str(include_url_regex),
+        "-a",
+        "css_selectors=" + str(css_selectors),
+        "-a",
+        "xpath_selectors=" + str(xpath_selectors),
+        "-o",
+        output_file,
+    ] + settings_list
+    if len(",".join(url_list)) > MAX_CMD_LENGTH:
         split_urls = _split_long_urllist(url_list)
 
         for u_list in split_urls:
-            command[4] = 'url_list=' + ','.join(u_list)
+            command[4] = "url_list=" + ",".join(u_list)
             subprocess.run(command)
     else:
         subprocess.run(command)
diff --git a/docs/_build/html/_modules/advertools/twitter.html b/docs/_build/html/_modules/advertools/twitter.html index b282e076..7535d66c 100644 --- a/docs/_build/html/_modules/advertools/twitter.html +++ b/docs/_build/html/_modules/advertools/twitter.html @@ -169,7 +169,7 @@

Source code for advertools.twitter

    >>> import advertools as adv
    >>> adv.twitter.set_auth_params(**auth_params)
 
-In some cases, you might be required to add ``oauth_token`` and 
+In some cases, you might be required to add ``oauth_token`` and
 ``oauth_token_secret, which case you ``auth_params`` will look like this:
 
 .. code-block:: python
@@ -212,23 +212,25 @@ 

Source code for advertools.twitter

     from pandas.io.json import json_normalize
 
 
-TWITTER_LOG_FMT = ('%(asctime)s | %(levelname)s | %(filename)s:%(lineno)d '
-                   '| %(funcName)s | %(message)s')
+TWITTER_LOG_FMT = (
+    "%(asctime)s | %(levelname)s | %(filename)s:%(lineno)d "
+    "| %(funcName)s | %(message)s"
+)
 logging.basicConfig(format=TWITTER_LOG_FMT)
 
 # Functions that depend on 'previous_cursor' and 'next_cursor' to
 # navigate requests with a lot of data, request pagination basically.
 CURSORED_FUNCTIONS = [
-    'get_followers_ids',
-    'get_followers_list',
-    'get_friends_ids',
-    'get_friends_list',
-    'get_list_members',
-    'get_list_memberships',
-    'get_list_subscribers',
-    'get_list_subscriptions',
-    'get_retweeters_ids',
-    'show_owned_lists',
+    "get_followers_ids",
+    "get_followers_list",
+    "get_friends_ids",
+    "get_friends_list",
+    "get_list_members",
+    "get_list_memberships",
+    "get_list_subscribers",
+    "get_list_subscriptions",
+    "get_retweeters_ids",
+    "show_owned_lists",
 ]
 
 
@@ -237,88 +239,93 @@ 

Source code for advertools.twitter

 # that key, as opposed to other responses where you can easily
 # call DataFrame on them directly
 SPECIAL_KEY_FUNCS = {
-    'search': 'statuses',
-    'get_followers_list': 'users',
-    'get_friends_list': 'users',
-    'get_list_members': 'users',
-    'get_list_subscribers': 'users',
-    'get_list_memberships': 'lists',
-    'get_list_subscriptions': 'lists',
-    'show_owned_lists': 'lists',
-
+    "search": "statuses",
+    "get_followers_list": "users",
+    "get_friends_list": "users",
+    "get_list_members": "users",
+    "get_list_subscribers": "users",
+    "get_list_memberships": "lists",
+    "get_list_subscriptions": "lists",
+    "show_owned_lists": "lists",
 }
 
 
 # Functions that contain an embedded ``user`` key, containing
 # 40+ attributes of the user tweeting, listed, retweeted, etc.
 USER_DATA_EMBEDDED = {
-    'get_favorites': 'tweet_',
-    'get_home_timeline': 'tweet_',
-    'get_list_memberships': 'list_',
-    'get_list_statuses': 'tweet_',
-    'get_list_subscriptions': '',
-    'get_mentions_timeline': 'tweet_',
-    'get_retweets': 'tweet_',
-    'get_user_timeline': 'tweet_',
-    'lookup_status': 'tweet_',
-    'retweeted_of_me': 'tweet_',
-    'search': 'tweet_',
-    'show_lists': 'list_',
-    'show_owned_lists': 'list_',
+    "get_favorites": "tweet_",
+    "get_home_timeline": "tweet_",
+    "get_list_memberships": "list_",
+    "get_list_statuses": "tweet_",
+    "get_list_subscriptions": "",
+    "get_mentions_timeline": "tweet_",
+    "get_retweets": "tweet_",
+    "get_user_timeline": "tweet_",
+    "lookup_status": "tweet_",
+    "retweeted_of_me": "tweet_",
+    "search": "tweet_",
+    "show_lists": "list_",
+    "show_owned_lists": "list_",
 }
 
 
 DEFAULT_COUNTS = {
-    'get_favorites': 200,
-    'get_followers_ids': 5000,
-    'get_followers_list': 200,
-    'get_friends_ids': 5000,
-    'get_friends_list': 200,
-    'get_home_timeline': 200,
-    'get_list_members': 5000,
-    'get_list_memberships': 1000,
-    'get_list_statuses': 100,
-    'get_list_subscribers': 5000,
-    'get_list_subscriptions': 1000,
-    'get_mentions_timeline': 200,
-    'get_retweeters_ids': 100,
-    'get_retweets': 100,
-    'get_user_timeline': 200,
-    'lookup_status': 100,
-    'lookup_user': 100,
-    'retweeted_of_me': 100,
-    'search': 100,
-    'search_users': 20,
-    'show_lists': 100,
-    'show_owned_lists': 1000
+    "get_favorites": 200,
+    "get_followers_ids": 5000,
+    "get_followers_list": 200,
+    "get_friends_ids": 5000,
+    "get_friends_list": 200,
+    "get_home_timeline": 200,
+    "get_list_members": 5000,
+    "get_list_memberships": 1000,
+    "get_list_statuses": 100,
+    "get_list_subscribers": 5000,
+    "get_list_subscriptions": 1000,
+    "get_mentions_timeline": 200,
+    "get_retweeters_ids": 100,
+    "get_retweets": 100,
+    "get_user_timeline": 200,
+    "lookup_status": 100,
+    "lookup_user": 100,
+    "retweeted_of_me": 100,
+    "search": 100,
+    "search_users": 20,
+    "show_lists": 100,
+    "show_owned_lists": 1000,
 }
 
 
 def _expand_entities(df):
-    if 'tweet_entities' in df:
-        colnames = ['tweet_entities_' + x for x in ['mentions', 'hashtags',
-                                                    'urls', 'symbols',
-                                                    'media']]
-        entities_df = json_normalize(df['tweet_entities'])
-        mentions = [', '.join(['@' + x['screen_name'] for x in y])
-                    for y in entities_df['user_mentions']]
-        hashtags = [', '.join(['#' + x['text'] for x in y])
-                    for y in entities_df['hashtags']]
-        urls = [', '.join([x['expanded_url'] for x in y])
-                for y in entities_df['urls']]
-        symbols = [', '.join(['$' + x['text'] for x in y])
-                   for y in entities_df['symbols']]
-
-        if 'media' in entities_df:
-            entities_df['media'] = entities_df['media'].fillna('')
-            media = [', '.join([x['media_url'] for x in y]) if y != '' else
-                     y for y in entities_df['media']]
+    if "tweet_entities" in df:
+        colnames = [
+            "tweet_entities_" + x
+            for x in ["mentions", "hashtags", "urls", "symbols", "media"]
+        ]
+        entities_df = json_normalize(df["tweet_entities"])
+        mentions = [
+            ", ".join(["@" + x["screen_name"] for x in y])
+            for y in entities_df["user_mentions"]
+        ]
+        hashtags = [
+            ", ".join(["#" + x["text"] for x in y]) for y in entities_df["hashtags"]
+        ]
+        urls = [", ".join([x["expanded_url"] for x in y]) for y in entities_df["urls"]]
+        symbols = [
+            ", ".join(["$" + x["text"] for x in y]) for y in entities_df["symbols"]
+        ]
+
+        if "media" in entities_df:
+            entities_df["media"] = entities_df["media"].fillna("")
+            media = [
+                ", ".join([x["media_url"] for x in y]) if y != "" else y
+                for y in entities_df["media"]
+            ]
             entity_cols = [mentions, hashtags, urls, symbols, media]
         else:
             entity_cols = [mentions, hashtags, urls, symbols]
-        col_idx = df.columns.get_loc('tweet_entities')
+        col_idx = df.columns.get_loc("tweet_entities")
         for j, col in enumerate(entity_cols):
-            df.insert(col_idx+j+1, colnames[j], col)
+            df.insert(col_idx + j + 1, colnames[j], col)
     return df
 
 
@@ -341,9 +348,9 @@ 

Source code for advertools.twitter

     def wrapper(count=None, max_id=None, *args, **kwargs):
         nonlocal func
 
-        twtr = Twython(**wrapper.get_auth_params())
+        twtr = Twython(**wrapper.get_auth_params())  # noqa: F841
         fname = func.__name__
-        func = eval('twtr.' + fname)
+        func = eval("twtr." + fname)
 
         if count is None:
             count = DEFAULT_COUNTS[fname]
@@ -351,38 +358,50 @@ 

Source code for advertools.twitter

 
         responses = []
         for i, count in enumerate(counts):
-            if fname == 'search':
-                if responses and not responses[-1]['statuses']:
+            if fname == "search":
+                if responses and not responses[-1]["statuses"]:
                     break
-                max_id = (max_id or None) if i == 0 else (responses[-1]['statuses'][-1]['id'] - 1)
-            if (fname != 'search') and (fname not in CURSORED_FUNCTIONS):
+                max_id = (
+                    (max_id or None)
+                    if i == 0
+                    else (responses[-1]["statuses"][-1]["id"] - 1)
+                )
+            if (fname != "search") and (fname not in CURSORED_FUNCTIONS):
                 if responses and len(responses[-1]) == 0:
                     break
-                max_id = (max_id or None) if i == 0 else (responses[-1][-1]['id'] - 1)
+                max_id = (max_id or None) if i == 0 else (responses[-1][-1]["id"] - 1)
             if fname in CURSORED_FUNCTIONS:
-                cursor = None if i == 0 else responses[-1]['next_cursor']
+                cursor = None if i == 0 else responses[-1]["next_cursor"]
                 max_id = None
             else:
                 cursor = None
-            kwargs_log = ', '.join([k + '=' + str(v) for k, v in kwargs.items()])
-            args_log = ', '.join(args)
-            logging.info(msg=fname + ' | ' + 'Requesting: ' +
-                         'count=' + str(count) + ', max_id=' +
-                         str(max_id) + ', ' + kwargs_log + args_log)
-
-            resp = func(count=count,
-                        max_id=max_id,
-                        cursor=cursor,
-                        *args, **kwargs)
+            kwargs_log = ", ".join([k + "=" + str(v) for k, v in kwargs.items()])
+            args_log = ", ".join(args)
+            logging.info(
+                msg=fname
+                + " | "
+                + "Requesting: "
+                + "count="
+                + str(count)
+                + ", max_id="
+                + str(max_id)
+                + ", "
+                + kwargs_log
+                + args_log
+            )
+
+            resp = func(count=count, max_id=max_id, cursor=cursor, *args, **kwargs)  # noqa: B026
             responses.append(resp)
 
-        if '_ids' in fname:
+        if "_ids" in fname:
             finallist = []
             for sublist in responses:
-                finallist.extend(sublist['ids'])
-            finaldict = {'previous_cursor': responses[0]['previous_cursor'],
-                         'next_cursor': responses[-1]['next_cursor'],
-                         'ids': finallist}
+                finallist.extend(sublist["ids"])
+            finaldict = {
+                "previous_cursor": responses[0]["previous_cursor"],
+                "next_cursor": responses[-1]["next_cursor"],
+                "ids": finallist,
+            }
             return finaldict
 
         final_df = pd.DataFrame()
@@ -390,9 +409,13 @@ 

Source code for advertools.twitter

             if SPECIAL_KEY_FUNCS.get(fname):
                 resp_df = pd.DataFrame(resp[SPECIAL_KEY_FUNCS.get(fname)])
                 if fname in USER_DATA_EMBEDDED:
-                    resp_df.columns = [USER_DATA_EMBEDDED[fname] + col for col in resp_df.columns]
-                    user_df = pd.DataFrame([x['user'] for x in resp[SPECIAL_KEY_FUNCS.get(fname)]])
-                    user_df.columns = ['user_' + col for col in user_df.columns]
+                    resp_df.columns = [
+                        USER_DATA_EMBEDDED[fname] + col for col in resp_df.columns
+                    ]
+                    user_df = pd.DataFrame(
+                        [x["user"] for x in resp[SPECIAL_KEY_FUNCS.get(fname)]]
+                    )
+                    user_df.columns = ["user_" + col for col in user_df.columns]
                     temp_df = pd.concat([resp_df, user_df], axis=1, sort=False)
                 else:
                     temp_df = resp_df
@@ -400,25 +423,30 @@ 

Source code for advertools.twitter

                 resp_df = pd.DataFrame(resp)
 
                 if fname in USER_DATA_EMBEDDED:
-                    resp_df.columns = [USER_DATA_EMBEDDED[fname] + x for x in resp_df.columns]
-                    user_df = pd.DataFrame([x['user'] for x in resp])
-                    user_df.columns = ['user_' + x for x in user_df.columns]
+                    resp_df.columns = [
+                        USER_DATA_EMBEDDED[fname] + x for x in resp_df.columns
+                    ]
+                    user_df = pd.DataFrame([x["user"] for x in resp])
+                    user_df.columns = ["user_" + x for x in user_df.columns]
                     temp_df = pd.concat([resp_df, user_df], axis=1)
                 else:
                     temp_df = resp_df
             final_df = pd.concat([final_df, temp_df], sort=False, ignore_index=True)
 
         for col in final_df:
-            if 'created_at' in col:
+            if "created_at" in col:
                 final_df[col] = pd.to_datetime(final_df[col])
         for col in final_df:
-            if 'source' in col:
-                final_df[col + '_url'] = final_df[col].str.extract('<a href="(.*)" rel=')[0]
+            if "source" in col:
+                final_df[col + "_url"] = final_df[col].str.extract(
+                    '<a href="(.*)" rel='
+                )[0]
                 final_df[col] = final_df[col].str.extract('nofollow">(.*)</a>')[0]
-        if 'tweet_entities' in final_df:
+        if "tweet_entities" in final_df:
             return _expand_entities(final_df)
 
         return final_df
+
     return wrapper
@@ -428,6 +456,7 @@

Source code for advertools.twitter

 def authenticate(func):
     """Used internally, please use set_auth_params for authentication."""
     auth_params = {}
+
     @wraps(func)
     def wrapper(*args, **kwargs):
         return func(*args, **kwargs)
@@ -461,18 +490,21 @@ 

Source code for advertools.twitter

     twtr = Twython(**get_application_rate_limit_status.get_auth_params())
     ratelimit = twtr.get_application_rate_limit_status()
     limit_df = pd.DataFrame()
-    for resource in ratelimit['resources']:
-        temp_df = pd.DataFrame(ratelimit['resources'][resource]).T
+    for resource in ratelimit["resources"]:
+        temp_df = pd.DataFrame(ratelimit["resources"][resource]).T
         limit_df = pd.concat([limit_df, temp_df], sort=False)
-    limit_df['reset'] = pd.to_datetime(limit_df['reset'], unit='s')
-    limit_df['resource'] = limit_df.index.str.split('/').str[1]
-    limit_df.index.name = 'endpoint'
-    limit_df = limit_df.sort_values(['resource'])
+    limit_df["reset"] = pd.to_datetime(limit_df["reset"], unit="s")
+    limit_df["resource"] = limit_df.index.str.split("/").str[1]
+    limit_df.index.name = "endpoint"
+    limit_df = limit_df.sort_values(["resource"])
     limit_df = limit_df.reset_index()
     if consumed_only:
-        print(' '*12, 'Rate limit as of:',
-              pd.Timestamp.now(tz='UTC').strftime('%Y-%m-%-d %H:%M:%S'))
-        return limit_df[limit_df['limit'].ne(limit_df['remaining'])]
+        print(
+            " " * 12,
+            "Rate limit as of:",
+            pd.Timestamp.now(tz="UTC").strftime("%Y-%m-%-d %H:%M:%S"),
+        )
+        return limit_df[limit_df["limit"].ne(limit_df["remaining"])]
     return limit_df
@@ -490,10 +522,10 @@

Source code for advertools.twitter

 
     available_trends = twtr.get_available_trends()
     trends_df = pd.DataFrame(available_trends)
-    trends_df['code'] = [x['code'] for x in trends_df['placeType']]
-    trends_df['place_type'] = [x['name'] for x in trends_df['placeType']]
-    del trends_df['placeType']
-    trends_df = trends_df.sort_values(['country', 'place_type', 'name'])
+    trends_df["code"] = [x["code"] for x in trends_df["placeType"]]
+    trends_df["place_type"] = [x["name"] for x in trends_df["placeType"]]
+    del trends_df["placeType"]
+    trends_df = trends_df.sort_values(["country", "place_type", "name"])
     trends_df = trends_df.reset_index(drop=True)
     return trends_df
@@ -503,8 +535,15 @@

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_favorites(user_id=None, screen_name=None, count=None, since_id=None,
-                  max_id=None, include_entities=None, tweet_mode=None):
+def get_favorites(
+    user_id=None,
+    screen_name=None,
+    count=None,
+    since_id=None,
+    max_id=None,
+    include_entities=None,
+    tweet_mode=None,
+):
     """
     Returns the 20 most recent Tweets favorited by the authenticating
         or specified user.
@@ -537,8 +576,9 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_followers_ids(user_id=None, screen_name=None, cursor=None,
-                      stringify_ids=None, count=None):
+def get_followers_ids(
+    user_id=None, screen_name=None, cursor=None, stringify_ids=None, count=None
+):
     """
     Returns a cursored collection of user IDs for every user
         following the specified user.
@@ -569,8 +609,14 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_followers_list(user_id=None, screen_name=None, cursor=None, count=None,
-                       skip_status=None, include_user_entities=None):
+def get_followers_list(
+    user_id=None,
+    screen_name=None,
+    cursor=None,
+    count=None,
+    skip_status=None,
+    include_user_entities=None,
+):
     """
     Returns a cursored collection of user objects for users
         following the specified user.
@@ -601,8 +647,9 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_friends_ids(user_id=None, screen_name=None, cursor=None,
-                    stringify_ids=None, count=None):
+def get_friends_ids(
+    user_id=None, screen_name=None, cursor=None, stringify_ids=None, count=None
+):
     """
     Returns a cursored collection of user IDs for every user the
         specified user is following (otherwise known as their "friends").
@@ -633,8 +680,14 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_friends_list(user_id=None, screen_name=None, cursor=None, count=None,
-                     skip_status=None, include_user_entities=None):
+def get_friends_list(
+    user_id=None,
+    screen_name=None,
+    cursor=None,
+    count=None,
+    skip_status=None,
+    include_user_entities=None,
+):
     """
     Returns a cursored collection of user objects for every user the
         specified user is following (otherwise known as their "friends").
@@ -664,8 +717,15 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_home_timeline(count=None, since_id=None, max_id=None, trim_user=None,
-                      exclude_replies=None, include_entities=None, tweet_mode=None):
+def get_home_timeline(
+    count=None,
+    since_id=None,
+    max_id=None,
+    trim_user=None,
+    exclude_replies=None,
+    include_entities=None,
+    tweet_mode=None,
+):
     """
     Returns a collection of the most recent Tweets and retweets
         posted by the authenticating user and the users they follow.
@@ -702,8 +762,16 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_list_members(list_id=None, slug=None, owner_screen_name=None, owner_id=None,
-                     count=None, cursor=None, include_entities=None, skip_status=None):
+def get_list_members(
+    list_id=None,
+    slug=None,
+    owner_screen_name=None,
+    owner_id=None,
+    count=None,
+    cursor=None,
+    include_entities=None,
+    skip_status=None,
+):
     """
     Returns the members of the specified list.
 
@@ -737,8 +805,9 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_list_memberships(user_id=None, screen_name=None, count=None,
-                         cursor=None, filter_to_owned_lists=None):
+def get_list_memberships(
+    user_id=None, screen_name=None, count=None, cursor=None, filter_to_owned_lists=None
+):
     """
     Returns the lists the specified user has been added to.
 
@@ -768,9 +837,18 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_list_statuses(list_id=None, slug=None, owner_screen_name=None, owner_id=None,
-                      since_id=None, max_id=None, count=None, include_entities=None,
-                      include_rts=None, tweet_mode=None):
+def get_list_statuses(
+    list_id=None,
+    slug=None,
+    owner_screen_name=None,
+    owner_id=None,
+    since_id=None,
+    max_id=None,
+    count=None,
+    include_entities=None,
+    include_rts=None,
+    tweet_mode=None,
+):
     """
     Returns a timeline of tweets authored by members of the specified list.
 
@@ -813,8 +891,16 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_list_subscribers(list_id=None, slug=None, owner_screen_name=None, owner_id=None,
-                         count=None, cursor=None, include_entities=None, skip_status=None):
+def get_list_subscribers(
+    list_id=None,
+    slug=None,
+    owner_screen_name=None,
+    owner_id=None,
+    count=None,
+    cursor=None,
+    include_entities=None,
+    skip_status=None,
+):
     """
     Returns the subscribers of the specified list.
 
@@ -851,8 +937,7 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_list_subscriptions(user_id=None, screen_name=None, count=None,
-                           cursor=None):
+def get_list_subscriptions(user_id=None, screen_name=None, count=None, cursor=None):
     """
     Obtain a collection of the lists the specified user is subscribed to.
 
@@ -879,8 +964,14 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def get_mentions_timeline(count=None, since_id=None, max_id=None,
-                          trim_user=None, include_entities=None, tweet_mode=None):
+def get_mentions_timeline(
+    count=None,
+    since_id=None,
+    max_id=None,
+    trim_user=None,
+    include_entities=None,
+    tweet_mode=None,
+):
     """
     Returns the 20 most recent mentions (tweets containing a users's
         @screen_name) for the authenticating user.
@@ -916,10 +1007,10 @@ 

Source code for advertools.twitter

     Returns the top 10 trending topics for a specific WOEID, if
         trending information is available for it.
 
-    :param id: (int or list of ints - required) run ``get_available_trends()`` for 
+    :param id: (int or list of ints - required) run ``get_available_trends()`` for
         the full listing.
-        The Yahoo! Where On Earth ID of the 
-        location to return trending information for. Global information is available 
+        The Yahoo! Where On Earth ID of the
+        location to return trending information for. Global information is available
         by using 1 as the WOEID .
     :param exclude: (str - optional) Setting this equal to hashtags will remove
         all hashtags from the trends list.
@@ -931,36 +1022,47 @@ 

Source code for advertools.twitter

     if isinstance(ids, int):
         ids = [ids]
     for place_id in ids:
-
         place_trends = twtr.get_place_trends(id=place_id)
-        trend_df = pd.DataFrame(place_trends[0]['trends'])
-        trend_df = trend_df.sort_values(['tweet_volume'], ascending=False)
-        trend_df['location'] = place_trends[0]['locations'][0]['name']
-        trend_df['woeid'] = place_trends[0]['locations'][0]['woeid']
-        trend_df['time'] = pd.to_datetime(place_trends[0]['created_at'])
+        trend_df = pd.DataFrame(place_trends[0]["trends"])
+        trend_df = trend_df.sort_values(["tweet_volume"], ascending=False)
+        trend_df["location"] = place_trends[0]["locations"][0]["name"]
+        trend_df["woeid"] = place_trends[0]["locations"][0]["woeid"]
+        trend_df["time"] = pd.to_datetime(place_trends[0]["created_at"])
 
         trends_df = pd.concat([trends_df, trend_df], ignore_index=True)
 
-    trends_df = trends_df.sort_values(['woeid', 'tweet_volume'],
-                                      ascending=[True, False])
+    trends_df = trends_df.sort_values(
+        ["woeid", "tweet_volume"], ascending=[True, False]
+    )
     trends_df = trends_df.reset_index(drop=True)
     available = get_available_trends()
-    available = available[['country', 'parentid', 'woeid', 'place_type']]
-    final_df = pd.merge(trends_df, available, on='woeid')
-    final_df['local_rank'] = (final_df
-                              .groupby('woeid')['tweet_volume']
-                              .rank(method='dense', ascending=False))
-    final_df['country_rank'] = (final_df
-                                .groupby('country')['tweet_volume']
-                                .rank(method='dense', ascending=False))
-    final_df = final_df[['name', 'location', 'tweet_volume', 'local_rank',
-                         'country', 'country_rank', 'time','place_type',
-                         'promoted_content', 'woeid', 'parentid']]
+    available = available[["country", "parentid", "woeid", "place_type"]]
+    final_df = pd.merge(trends_df, available, on="woeid")
+    final_df["local_rank"] = final_df.groupby("woeid")["tweet_volume"].rank(
+        method="dense", ascending=False
+    )
+    final_df["country_rank"] = final_df.groupby("country")["tweet_volume"].rank(
+        method="dense", ascending=False
+    )
+    final_df = final_df[
+        [
+            "name",
+            "location",
+            "tweet_volume",
+            "local_rank",
+            "country",
+            "country_rank",
+            "time",
+            "place_type",
+            "promoted_content",
+            "woeid",
+            "parentid",
+        ]
+    ]
     return final_df
-
[docs] @make_dataframe @@ -1017,7 +1119,6 @@

Source code for advertools.twitter

 
 
 
-
 
[docs] @authenticate @@ -1034,14 +1135,21 @@

Source code for advertools.twitter

 
 
 
-
 
[docs] @make_dataframe @authenticate -def get_user_timeline(user_id=None, screen_name=None, since_id=None, - count=None, max_id=None, trim_user=None, exclude_replies=None, - include_rts=None, tweet_mode=None): +def get_user_timeline( + user_id=None, + screen_name=None, + since_id=None, + count=None, + max_id=None, + trim_user=None, + exclude_replies=None, + include_rts=None, + tweet_mode=None, +): """ Returns a collection of the most recent Tweets posted by the user indicated by the ``screen_name`` or ``user_id`` parameters. @@ -1084,8 +1192,15 @@

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def lookup_status(id, include_entities=None, trim_user=None, map=None,
-                  include_ext_alt_text=None, include_card_uri=None, tweet_mode=None):
+def lookup_status(
+    id,
+    include_entities=None,
+    trim_user=None,
+    map=None,
+    include_ext_alt_text=None,
+    include_card_uri=None,
+    tweet_mode=None,
+):
     """
     Returns fully-hydrated tweet objects for up to 100 tweets per
         request, as specified by comma-separated values passed to the ``id``
@@ -1122,8 +1237,7 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def lookup_user(screen_name=None, user_id=None, include_entities=None,
-                tweet_mode=None):
+def lookup_user(screen_name=None, user_id=None, include_entities=None, tweet_mode=None):
     """
     Returns fully-hydrated user objects for up to 100 users per request,
         as specified by comma-separated values passed to the ``user_id`` and/or
@@ -1151,8 +1265,15 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def retweeted_of_me(count=None, since_id=None, max_id=None, trim_user=None,
-                    include_entities=None, include_user_entities=None, tweet_mode=None):
+def retweeted_of_me(
+    count=None,
+    since_id=None,
+    max_id=None,
+    trim_user=None,
+    include_entities=None,
+    include_user_entities=None,
+    tweet_mode=None,
+):
     """
     Returns the most recent tweets authored by the authenticating user
         that have been retweeted by others.
@@ -1186,9 +1307,19 @@ 

Source code for advertools.twitter

 [docs]
 @make_dataframe
 @authenticate
-def search(q, geocode=None, lang=None, locale=None, result_type=None,
-           count=None, until=None, since_id=None, max_id=None, include_entities=None,
-           tweet_mode=None):
+def search(
+    q,
+    geocode=None,
+    lang=None,
+    locale=None,
+    result_type=None,
+    count=None,
+    until=None,
+    since_id=None,
+    max_id=None,
+    include_entities=None,
+    tweet_mode=None,
+):
     """
     Returns a collection of relevant Tweets matching a specified query.
 
@@ -1296,7 +1427,7 @@ 

Source code for advertools.twitter

     +------------------------------------+-----------------------------------------------------+
 
     https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets
-    """
+    """  # noqa: E501
     pass
@@ -1407,16 +1538,24 @@

Source code for advertools.twitter

 
 
[docs] -def set_auth_params(app_key=None, app_secret=None, oauth_token=None, - oauth_token_secret=None, access_token=None, - token_type='bearer', oauth_version=1, api_version='1.1', - client_args=None, auth_endpoint='authenticate'): - """The main function for authentication. - Needs to be called once in a session. - +def set_auth_params( + app_key=None, + app_secret=None, + oauth_token=None, + oauth_token_secret=None, + access_token=None, + token_type="bearer", + oauth_version=1, + api_version="1.1", + client_args=None, + auth_endpoint="authenticate", +): + """The main function for authentication. + Needs to be called once in a session. + First you need to create a developer account and app: - https://developer.twitter.com/ to get your credentials. - + https://developer.twitter.com/ to get your credentials. + Different ways to authenticate: https://twython.readthedocs.io/en/latest/usage/starting_out.html """ @@ -1427,7 +1566,7 @@

Source code for advertools.twitter

 
 
 
-logging.getLogger().setLevel('INFO')
+logging.getLogger().setLevel("INFO")
 
diff --git a/docs/_build/html/advertools.ad_create.html b/docs/_build/html/advertools.ad_create.html index 29ecf95b..5e98ad61 100644 --- a/docs/_build/html/advertools.ad_create.html +++ b/docs/_build/html/advertools.ad_create.html @@ -175,40 +175,52 @@
Parameters:
    -
  • template (str) -- a string format template, using braces e.g. "Get the -latest {} today."

  • -
  • replacements (list) -- replacement strings to be inserted in -template

  • -
  • fallback (str) -- the string to insert in template in case -replacement is longer than max_len

  • -
  • max_len (int) -- the maximum allowed length of the full string

  • -
  • capitalize (bool) -- whether or not to capitalize words in the result

  • +
  • template (str) -- A string format template, using braces e.g. "Get the latest {} today."

  • +
  • replacements (list) -- Replacement strings to be inserted in template.

  • +
  • fallback (str) -- The string to insert in template in case replacement is longer +than max_len.

  • +
  • max_len (int) -- The maximum allowed length of the full string.

  • +
  • capitalize (bool) -- Whether or not to capitalize words in the result.

-
Returns formatted:
-

list of strings

+
Returns:
+

formatted -- List of ads (strings).

+
+
Return type:
+

list

-
>>> ad_create("Let's count {}", ['one', 'two', 'three'], 'one', 20)
+

Examples

+
>>> ad_create("Let's count {}", ["one", "two", "three"], "one", 20)
 ["Let's Count One", "Let's Count Two", "Let's Count Three"]
 
-
>>> ad_create(template='My favorite car is {}',
-...           replacements=['Toyota', 'BMW', 'Mercedes', 'Lamborghini'],
-...           fallback='great',
-...           max_len=28)
+
>>> ad_create(
+...     template="My favorite car is {}",
+...     replacements=["Toyota", "BMW", "Mercedes", "Lamborghini"],
+...     fallback="great",
+...     max_len=28,
+... )
 ['My Favorite Car Is Toyota', 'My Favorite Car Is Bmw',
 'My Favorite Car Is Mercedes', 'My Favorite Car Is Great']
 
-
>>> ad_create('KeEP cApITalization {}', ['As IS'],
-...           fallback='fallback', max_len=50, capitalize=False)
+
>>> ad_create(
+...     "KeEP cApITalization {}",
+...     ["As IS"],
+...     fallback="fallback",
+...     max_len=50,
+...     capitalize=False,
+... )
 ['KeEP cApITalization As IS']
 
-
>>> ad_create('This is very long and will produce and error',
-...           replacements=['something', 'long'], fallback='Very long',
-...           max_len=20)
+
>>> ad_create(
+...     "This is very long and will produce and error",
+...     replacements=["something", "long"],
+...     fallback="Very long",
+...     max_len=20,
+... )
 Traceback (most recent call last):
 File "<input>", line 1, in <module>
 File "<input>", line 26, in ad_create
diff --git a/docs/_build/html/advertools.code_recipes.spider_strategies.html b/docs/_build/html/advertools.code_recipes.spider_strategies.html
index c8431cc4..4f2ba7ac 100644
--- a/docs/_build/html/advertools.code_recipes.spider_strategies.html
+++ b/docs/_build/html/advertools.code_recipes.spider_strategies.html
@@ -292,9 +292,9 @@ 

How can I set multiple settings to the same crawl job?I want to crawl a list of pages, follow links from those pages, but only to a certain specified depth

Set the DEPTH_LIMIT setting in the custom_settings parameter. A setting of 1 would follow links one level after the provided URLs in url_list

-
>>> adv.crawl('http://example.com',
-...           'example_crawl_1.jl',
-...           custom_settings={'DEPTH_LIMIT': 2}) # follow links two levels from the initial URLs, then stop
+
>>> adv.crawl(
+...     "http://example.com", "example_crawl_1.jl", custom_settings={"DEPTH_LIMIT": 2}
+... )  # follow links two levels from the initial URLs, then stop
 
@@ -351,22 +351,23 @@

How do I use a proxy while crawling?https://user123:password123@12.34.56.78:1114

Then, you need to set a few custom_settings in the crawl function:

adv.crawl(
-    'https://example.com', 'output_file.jl', follow_links=True,
-
+    "https://example.com",
+    "output_file.jl",
+    follow_links=True,
     custom_settings={
-        'DOWNLOADER_MIDDLEWARES': {
-            'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
-            'rotating_proxies.middlewares.BanDetectionMiddleware': 620
+        "DOWNLOADER_MIDDLEWARES": {
+            "rotating_proxies.middlewares.RotatingProxyMiddleware": 610,
+            "rotating_proxies.middlewares.BanDetectionMiddleware": 620,
         },
-        'ROTATING_PROXY_LIST_PATH': 'proxies.txt',
-    }
+        "ROTATING_PROXY_LIST_PATH": "proxies.txt",
+    },
 )
 

You can then read the output file normally and see that the proxies are being used:

-
crawldf = pd.read_json('output_file.jl', lines=True)
-crawldf.filter(regex='proxy').head()
+
crawldf = pd.read_json("output_file.jl", lines=True)
+crawldf.filter(regex="proxy").head()
 
@@ -418,22 +419,22 @@

How can I change the default request headers?DEFAULT_REQUEST_HEADERS setting as a dictionary to the custom_settings parameter:

adv.crawl(
-    url_list='https://example.com',
-    output_file='output.jl',
+    url_list="https://example.com",
+    output_file="output.jl",
     custom_settings={
-        'DEFAULT_REQUEST_HEADERS': {
-            'Accept-Language': 'es',
-            'Accept-Encoding': 'gzip, deflate'
+        "DEFAULT_REQUEST_HEADERS": {
+            "Accept-Language": "es",
+            "Accept-Encoding": "gzip, deflate",
         }
-    }
+    },
 )
 

You can easily check for the actual request headers that were used while crawling. In the crawl DataFrame, simply use the regex pattern request_headers_:

-
crawldf = pd.read_json('output.jl', lines=True)
-crawldf.filter(regex='request_headers_')
+
crawldf = pd.read_json("output.jl", lines=True)
+crawldf.filter(regex="request_headers_")
 

diff --git a/docs/_build/html/advertools.extract.html b/docs/_build/html/advertools.extract.html index cc8bac8c..7b877a0c 100644 --- a/docs/_build/html/advertools.extract.html +++ b/docs/_build/html/advertools.extract.html @@ -605,16 +605,20 @@

Extract Emoji 😂😭🥺🤣❤️✨🙏😍Parameters:
  • text_list (list) -- A list of text strings.

  • -
  • left_chars (int) -- The number of characters to extract, to the -left of the symbol when getting surrounding_text

  • -
  • right_chars (int) -- The number of characters to extract, to the -left of the symbol when getting surrounding_text

  • +
  • left_chars (int) -- The number of characters to extract, to the left of the symbol when getting +surrounding_text

  • +
  • right_chars (int) -- The number of characters to extract, to the left of the symbol when getting +surrounding_text

-
Returns summary:
-

A dictionary with various stats about currencies

+
Returns:
+

summary -- A dictionary with various stats about currencies.

+
+
Return type:
+

dict

+

Examples

>>> posts = ['today ₿1 is around $4k', 'and ₿ in £ & €?', 'no idea']
 >>> currency_summary = extract_currency(posts)
 >>> currency_summary.keys()
@@ -681,14 +685,19 @@ 

Extract Emoji 😂😭🥺🤣❤️✨🙏😍text_list

Get a summary of the number of exclamation marks, their frequency, the top ones, as well the exclamations written/said.

+
+
text_listlist

A list of text strings.

+
+
-
Parameters:
-

text_list (list) -- A list of text strings.

+
Returns:
+

summary -- A dictionary with various stats about exclamations.

-
Returns summary:
-

A dictionary with various stats about exclamations

+
Return type:
+

dict

+

Examples

>>> posts = ['Who are you!', 'What is this!', 'No exclamation here?']
 >>> exclamation_summary = extract_exclamations(posts)
 >>> exclamation_summary.keys()
@@ -792,14 +801,19 @@ 

Extract Emoji 😂😭🥺🤣❤️✨🙏😍text_list

Get a summary of the number of hashtags, their frequency, the top ones, and more.

+
+
text_listlist

A list of text strings.

+
+
-
Parameters:
-

text_list (list) -- A list of text strings.

+
Returns:
+

summary -- A dictionary with various stats about hashtags.

-
Returns summary:
-

A dictionary with various stats about hashtags

+
Return type:
+

dict

+

Examples

>>> posts = ['i like #blue', 'i like #green and #blue', 'i like all']
 >>> hashtag_summary = extract_hashtags(posts)
 >>> hashtag_summary.keys()
@@ -852,13 +866,16 @@ 

Extract Emoji 😂😭🥺🤣❤️✨🙏😍
Parameters:
    -
  • text_list (list) -- A text list from which to extract intense words

  • -
  • min_reps (int) -- The number of times a character has to be repeated for -the word to be considered intense.

  • +
  • text_list (list) -- A text list from which to extract intense words.

  • +
  • min_reps (int) -- The number of times a character has to be repeated for the word to be considered +intense.

-
Returns summary:
-

A dictionary with various stats about intense words

+
Returns:
+

summary -- A dictionary with various stats about intense words.

+
+
Return type:
+

dict

@@ -873,10 +890,14 @@

Extract Emoji 😂😭🥺🤣❤️✨🙏😍Parameters:

text_list (list) -- A list of text strings.

-
Returns summary:
-

A dictionary with various stats about mentions

+
Returns:
+

summary -- A dictionary with various stats about mentions.

+
+
Return type:
+

dict

+

Examples

>>> posts = ['hello @john and @jenny', 'hi there @john', 'good morning']
 >>> mention_summary = extract_mentions(posts)
 >>> mention_summary.keys()
@@ -931,14 +952,18 @@ 

Extract Emoji 😂😭🥺🤣❤️✨🙏😍Parameters:
  • text_list (list) -- A list of text strings.

  • -
  • number_separators (list(str)) -- A list of separators that you want -to be included as part of the extracted numbers.

  • +
  • number_separators (list) -- A list of separators that you want to be included as part of the extracted +numbers.

-
Returns summary:
-

A dictionary with various stats about the numbers

+
Returns:
+

summary -- A dictionary with various stats about the numbers.

+
+
Return type:
+

dict

+

Examples

>>> posts = ['text before 123', '123,456 text after', 'phone 333-444-555',
 'multiple 123,456 and 123.456.789']
 >>> number_summary = extract_numbers(posts)
@@ -992,10 +1017,14 @@ 

Extract Emoji 😂😭🥺🤣❤️✨🙏😍Parameters:

text_list (list) -- A list of text strings.

-
Returns summary:
-

A dictionary with various stats about questions

+
Returns:
+

summary -- A dictionary with various stats about questions.

+
+
Return type:
+

dict

+

Examples

>>> posts = ['How are you?', 'What is this?', 'No question Here!']
 >>> question_summary = extract_questions(posts)
 >>> question_summary.keys()
@@ -1106,10 +1135,14 @@ 

Extract Emoji 😂😭🥺🤣❤️✨🙏😍Parameters:

text_list (list) -- A list of text strings.

-
Returns summary:
-

A dictionary with various stats about URLs

+
Returns:
+

summary -- A dictionary with various stats about URLs.

+
+
Return type:
+

dict

+

Examples

>>> posts = ['one link http://example.com', 'two: http://a.com www.b.com',
 ...          'no links here',
 ...          'long url http://example.com/one/two/?1=one&2=two']
@@ -1178,17 +1211,19 @@ 

Extract Emoji 😂😭🥺🤣❤️✨🙏😍Parameters:
  • text_list (list) -- A list of text strings.

  • -
  • words_to_extract (list) -- A list of words to extract from -text_list.

  • -
  • entire_words_only (bool) -- Whether or not to find only complete words -(as specified by words_to_find) or find any any of the -words as part of longer strings.

  • +
  • words_to_extract (list) -- A list of words to extract from text_list.

  • +
  • entire_words_only (bool) -- Whether or not to find only complete words (as specified by words_to_find) +or find any any of the words as part of longer strings.

-
Returns summary:
-

A dictionary with various stats about the words

+
Returns:
+

summary -- A dictionary with various stats about the words.

+
+
Return type:
+

dict

+

Examples

>>> posts = ['there is rain, it is raining', 'there is snow and rain',
              'there is no rain, it is snowing', 'there is nothing']
 >>> word_summary = extract_words(posts, ['rain', 'snow'], True)
diff --git a/docs/_build/html/advertools.knowledge_graph.html b/docs/_build/html/advertools.knowledge_graph.html
index dbae7ade..0b0a7eae 100644
--- a/docs/_build/html/advertools.knowledge_graph.html
+++ b/docs/_build/html/advertools.knowledge_graph.html
@@ -196,7 +196,7 @@ 

How to use Google's Knowledge Graph API
>>> knowledge_graph(key=key, query=['google', 'bing'], languages=['en', 'fr', 'de'])
+
>>> knowledge_graph(key=key, query=["google", "bing"], languages=["en", "fr", "de"])
 

The function will send 2 (queries) x 3 languages = 6 requests.

@@ -205,7 +205,11 @@

How to use Google's Knowledge Graph API
>>> seo = knowledge_graph(key=key, query=['seo', 'search engine optimization'], languages=['en', 'es', 'de'])
+
>>> seo = knowledge_graph(
+...     key=key,
+...     query=["seo", "search engine optimization"],
+...     languages=["en", "es", "de"],
+... )
 >>> seo
         query                           languages       resultScore         result.name                      result.@type                                          result.description
 0       search engine optimization      de                     3587         Suchmaschinenoptimierung             ['Thing']                                         nan
@@ -248,29 +252,30 @@ 

How to use Google's Knowledge Graph API
Parameters:
+
Returns:
+

    +
  • kg_df (pandas.DataFrame) -- A DataFrame of all responses.

  • +
  • https (//developers.google.com/knowledge-graph/reference/rest/v1)

  • +
+

+
-

https://developers.google.com/knowledge-graph/reference/rest/v1

diff --git a/docs/_build/html/advertools.logs.html b/docs/_build/html/advertools.logs.html index 0dcbf2b7..0c2c0fbe 100644 --- a/docs/_build/html/advertools.logs.html +++ b/docs/_build/html/advertools.logs.html @@ -139,12 +139,14 @@

TL;DR

>>> import advertools as adv
 >>> import pandas as pd
->>> adv.logs_to_df(log_file='access.log',
-...                output_file='access_logs.parquet',
-...                errors_file='log_errors.csv',
-...                log_format='common',
-...                fields=None)
->>> logs_df = pd.read_parquet('access_logs.parquet')
+>>> adv.logs_to_df(
+...     log_file="access.log",
+...     output_file="access_logs.parquet",
+...     errors_file="log_errors.csv",
+...     log_format="common",
+...     fields=None,
+... )
+>>> logs_df = pd.read_parquet("access_logs.parquet")
 
@@ -2037,7 +2039,7 @@

Parse and Analyze Crawl Logs in a Dataframecrawllogs_to_df() function to open the logs in a DataFrame:

>>> import advertools as adv
->>> logs_df = adv.crawllogs_to_df('example.log')
+>>> logs_df = adv.crawllogs_to_df("example.log")
 

The DataFrame might contain the following columns:

@@ -2079,7 +2081,7 @@

Parse and Analyze Crawl Logs in a Dataframe output_file='example.jl', follow_links=True, custom_settings={'LOG_FILE': 'example.log'}) ->>> logs_df = adv.crawl_logs_to_df('example.log') +>>> logs_df = adv.crawl_logs_to_df("example.log")

@@ -2102,39 +2104,36 @@

Parse and Analyze Crawl Logs in a Dataframeadv.LOG_FORMATS and adv.LOG_FIELDS for the available formats and fields.

-
>>> import advertools as adv
->>> import pandas as pd
->>> adv.logs_to_df(log_file='access.log',
-...                output_file='access_logs.parquet',
-...                errors_file='log_errors.csv',
-...                log_format='common',
-...                fields=None)
->>> logs_df = pd.read_parquet('access_logs.parquet')
-
-
-

You can now analyze logs_df as a normal pandas DataFrame.

Parameters:
  • log_file (str) -- The path to the log file.

  • -
  • output_file (str) -- The path to the desired output file. Must have a -".parquet" extension, and must not have the same -path as an existing file.

  • -
  • errors_file (str) -- The path where the parsing errors are stored. Any -text format works, CSV is recommended to easily -open it with any CSV reader with the separator as -"@@".

  • -
  • log_format (str) -- Either the name of one of the supported log formats, -or a regex of your own format.

  • -
  • fields (str) -- A list of fields, which will become the names of columns -in output_file. Only required if you provide a -custom (regex) log_format.

  • -
  • encoding (str) -- The encoding of the log file. It defaults to utf-8, but -you might need to try others in case of errors -(latin-1, utf-16, etc.)

  • +
  • output_file (str) -- The path to the desired output file. Must have a ".parquet" extension, and must +not have the same path as an existing file.

  • +
  • errors_file (str) -- The path where the parsing errors are stored. Any text format works, CSV is +recommended to easily open it with any CSV reader with the separator as "@@".

  • +
  • log_format (str) -- The name of one of the supported log formats, or a regex of your own format.

  • +
  • fields (list) -- A list of fields, which will become the names of columns in output_file. Only +required if you provide a custom (regex) log_format.

  • +
  • encoding (str) -- The encoding of the log file. It defaults to utf-8, but you might need to try +others in case of errors (latin-1, utf-16, etc.)

+

Examples

+
>>> import advertools as adv
+>>> import pandas as pd
+>>> adv.logs_to_df(
+...     log_file="access.log",
+...     output_file="access_logs.parquet",
+...     errors_file="log_errors.csv",
+...     log_format="common",
+...     fields=None,
+... )
+>>> logs_df = pd.read_parquet("access_logs.parquet")
+
+
+

You can now analyze logs_df as a normal pandas DataFrame.

diff --git a/docs/_build/html/advertools.reverse_dns_lookup.html b/docs/_build/html/advertools.reverse_dns_lookup.html index da50c095..9498e6ad 100644 --- a/docs/_build/html/advertools.reverse_dns_lookup.html +++ b/docs/_build/html/advertools.reverse_dns_lookup.html @@ -254,9 +254,16 @@ of the top ones.

Examples

>>> import advertools as adv
->>> ip_list = ['66.249.66.194', '66.249.66.194', '66.249.66.194',
-...            '66.249.66.91', '66.249.66.91', '130.185.74.243',
-...            '31.56.96.51', '5.211.97.39']
+>>> ip_list = [
+...     "66.249.66.194",
+...     "66.249.66.194",
+...     "66.249.66.194",
+...     "66.249.66.91",
+...     "66.249.66.91",
+...     "130.185.74.243",
+...     "31.56.96.51",
+...     "5.211.97.39",
+... ]
 >>> adv.reverse_dns_lookup([ip_list])
 
diff --git a/docs/_build/html/advertools.robotstxt.html b/docs/_build/html/advertools.robotstxt.html index 03193f6f..79de4dc9 100644 --- a/docs/_build/html/advertools.robotstxt.html +++ b/docs/_build/html/advertools.robotstxt.html @@ -804,9 +804,27 @@

robots.txt Testing Approachurls.

All the combinations of user_agents and urls will be checked and the results returned in one DataFrame.

-
>>> robotstxt_test('https://facebook.com/robots.txt',
-...                user_agents=['*', 'Googlebot', 'Applebot'],
-...                urls=['/', '/bbc', '/groups', '/hashtag/'])
+
+
Parameters:
+
    +
  • robotstxt_url (str) -- The URL of robotx.txt file.

  • +
  • user_agents (str, list) -- One or more user agents.

  • +
  • urls (str, list) -- One or more paths (relative) or URLs (absolute) to check.

  • +
+
+
Returns:
+

robotstxt_test_df -- A DataFrame with the test results per user-agent/rule combination.

+
+
Return type:
+

pandas.DataFrame

+
+
+

Examples

+
-
-
Parameters:
-
    -
  • robotstxt_url (url) -- The URL of robotx.txt file

  • -
  • user_agents (str,list) -- One or more user agents

  • -
  • urls (str,list) -- One or more paths (relative) or URLs (absolute) to -check

  • -
-
-
Return DataFrame robotstxt_test_df:
-

-
robotstxt_to_df(robotstxt_url, output_file=None)[source]

Download the contents of robotstxt_url into a DataFrame

+
+
Parameters:
+
    +
  • robotstxt_url (str) -- One or more URLs of the robots.txt file(s)

  • +
  • output_file (str) -- Optional file path to save the robots.txt files, mainly useful for downloading > +500 files. The files are appended as soon as they are downloaded. Only the ".jl" +extension is supported.

  • +
+
+
Returns:
+

robotstxt_df -- A DataFrame containing directives, their content, the URL and time of download

+
+
Return type:
+

pandas.DataFrame

+
+
+

Examples

You can also use it to download multiple robots files by passing a list of URLs.

-
>>> robotstxt_to_df('https://www.twitter.com/robots.txt')
+
>>> robotstxt_to_df("https://www.twitter.com/robots.txt")
      directive content                       robotstxt_url                     download_date
 0   User-agent           *  https://www.twitter.com/robots.txt      2020-09-27 21:57:23.702814+00:00
 1     Disallow           /  https://www.twitter.com/robots.txt      2020-09-27 21:57:23.702814+00:00
 
-
>>> robotstxt_to_df(['https://www.google.com/robots.txt',
-...                  'https://www.twitter.com/robots.txt'])
+
diff --git a/docs/_build/html/advertools.serp.html b/docs/_build/html/advertools.serp.html index ef3e6c60..255745b5 100644 --- a/docs/_build/html/advertools.serp.html +++ b/docs/_build/html/advertools.serp.html @@ -285,7 +285,7 @@

Examples

The following function call will produce two queries: "hotel" in the USA, and "hotel" in France

-
>>> serp_goog(q='hotel', gl=['us', 'fr'], cx='YOUR_CX', key='YOUR_KEY')
+
>>> serp_goog(q="hotel", gl=["us", "fr"], cx="YOUR_CX", key="YOUR_KEY")
 

The below function call will prouce four queries and make four requests:

diff --git a/docs/_build/html/advertools.sitemaps.html b/docs/_build/html/advertools.sitemaps.html index c662429c..3cb5426c 100644 --- a/docs/_build/html/advertools.sitemaps.html +++ b/docs/_build/html/advertools.sitemaps.html @@ -168,7 +168,7 @@

Sitemap Index
>>> sitemap_to_df('https://example.com/robots.txt', recursive=False)
+
>>> sitemap_to_df("https://example.com/robots.txt", recursive=False)
 

Let's now go through a quick example of what can be done with sitemaps. We can diff --git a/docs/_build/html/advertools.spider.html b/docs/_build/html/advertools.spider.html index 48eeba40..d7d07adf 100644 --- a/docs/_build/html/advertools.spider.html +++ b/docs/_build/html/advertools.spider.html @@ -147,8 +147,8 @@ terms of performance, speed, as well as flexibility and customization.

There are two main approaches to crawl:

    -
  1. Discovery (spider mode): You know the website to crawl, so you provide a url_list -(one or more URLs), and you want the crawler to go through the whole +

  2. Discovery (spider mode): You know the website to crawl, so you provide a +url_list (one or more URLs), and you want the crawler to go through the whole website(s) by following all available links.

  3. Pre-determined (list mode): You have a known set of URLs that you want to crawl and analyze, without following links or discovering new URLs.

  4. @@ -439,18 +439,26 @@

    Custom Extraction with CSS and XPath Selectors
    >>> adv.crawl('https://advertools.readthedocs.io/en/master/advertools.spider.html',
    -...           'output_file.jl',
    -...           css_selectors={'sidebar_links': '.toctree-l1 .internal::text',
    -...                          'sidebar_links_url': '.toctree-l1 .internal::attr(href)'})
    +
    >>> adv.crawl(
    +...     "https://advertools.readthedocs.io/en/master/advertools.spider.html",
    +...     "output_file.jl",
    +...     css_selectors={
    +...         "sidebar_links": ".toctree-l1 .internal::text",
    +...         "sidebar_links_url": ".toctree-l1 .internal::attr(href)",
    +...     },
    +... )
     

    Or, instead of css_selectors you can add a similar dictionary for the xpath_selectors argument:

    -
    >>> adv.crawl('https://advertools.readthedocs.io/en/master/advertools.spider.html',
    -...           'output_file.jl',
    -...           xpath_selectors={'sidebar_links': '//*[contains(concat( " ", @class, " " ), concat( " ", "toctree-l1", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "internal", " " ))]/text()',
    -...                            'sidebar_links_url': '//*[contains(concat( " ", @class, " " ), concat( " ", "toctree-l1", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "internal", " " ))]/@href'})
    +
    >>> adv.crawl(
    +...     "https://advertools.readthedocs.io/en/master/advertools.spider.html",
    +...     "output_file.jl",
    +...     xpath_selectors={
    +...         "sidebar_links": '//*[contains(concat( " ", @class, " " ), concat( " ", "toctree-l1", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "internal", " " ))]/text()',
    +...         "sidebar_links_url": '//*[contains(concat( " ", @class, " " ), concat( " ", "toctree-l1", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "internal", " " ))]/@href',
    +...     },
    +... )
     
    @@ -555,10 +563,15 @@

    Spider Custom Settings and Additional Functionality

    Usage

    A very simple dictionary to be added to your function call:

    -
    >>> adv.crawl('http://exmaple.com', 'outpuf_file.jl',
    -...           custom_settings={'CLOSESPIDER_PAGECOUNT': 100,
    -...                            'CONCURRENT_REQUESTS_PER_DOMAIN': 1,
    -...                            'USER_AGENT': 'custom-user-agent'})
    +
    >>> adv.crawl(
    +...     "http://exmaple.com",
    +...     "outpuf_file.jl",
    +...     custom_settings={
    +...         "CLOSESPIDER_PAGECOUNT": 100,
    +...         "CONCURRENT_REQUESTS_PER_DOMAIN": 1,
    +...         "USER_AGENT": "custom-user-agent",
    +...     },
    +... )
     

    Please refer to the spider settings documentation @@ -568,73 +581,60 @@

    Spider Custom Settings and Additional Functionality
    crawl(url_list, output_file, follow_links=False, allowed_domains=None, exclude_url_params=None, include_url_params=None, exclude_url_regex=None, include_url_regex=None, css_selectors=None, xpath_selectors=None, custom_settings=None)[source]
    -

    Crawl a website's URLs based on the given url_list

    +

    Crawl a website of a list of URLs based on the supplied options.

    Parameters:
      -
    • url_list (url,list) -- One or more URLs to crawl. If follow_links -is True, the crawler will start with these URLs and -follow all links on pages recursively.

    • -
    • output_file (str) -- The path to the output of the crawl. Jsonlines only -is supported to allow for dynamic values. Make sure -your file ends with ".jl", e.g. output_file.jl.

    • -
    • follow_links (bool) -- Defaults to False. Whether or not to follow links -on crawled pages.

    • -
    • exclude_url_params (list,bool) -- A list of URL parameters to exclude -while following links. If a link -contains any of those parameters, -don't follow it. Setting it to -True will exclude links +

    • url_list (url, list) -- One or more URLs to crawl. If follow_links is True, the crawler will start +with these URLs and follow all links on pages recursively.

    • +
    • output_file (str) -- The path to the output of the crawl. Jsonlines only is supported to allow for +dynamic values. Make sure your file ends with ".jl", e.g. output_file.jl.

    • +
    • follow_links (bool) -- Defaults to False. Whether or not to follow links on crawled pages.

    • +
    • exclude_url_params (list, bool) -- A list of URL parameters to exclude while following links. If a link contains any +of those parameters, don't follow it. Setting it to True will exclude links containing any parameter.

    • -
    • include_url_params (list) -- A list of URL parameters to include while -following links. If a link contains any of -those parameters, follow it. Having the -same parmeters to include and exclude +

    • include_url_params (list) -- A list of URL parameters to include while following links. If a link contains any +of those parameters, follow it. Having the same parmeters to include and exclude raises an error.

    • -
    • exclude_url_regex (str) -- A regular expression of a URL pattern to -exclude while following links. If a link +

    • exclude_url_regex (str) -- A regular expression of a URL pattern to exclude while following links. If a link matches the regex don't follow it.

    • -
    • include_url_regex (str) -- A regular expression of a URL pattern to -include while following links. If a link +

    • include_url_regex (str) -- A regular expression of a URL pattern to include while following links. If a link matches the regex follow it.

    • -
    • css_selectors (dict) -- A dictionary mapping names to CSS selectors. The -names will become column headers, and the -selectors will be used to extract the required -data/content.

    • -
    • xpath_selectors (dict) -- A dictionary mapping names to XPath selectors. -The names will become column headers, and the -selectors will be used to extract the required -data/content.

    • -
    • custom_settings (dict) -- A dictionary of optional custom settings that -you might want to add to the spider's -functionality. There are over 170 settings for -all kinds of options. For details please -refer to the spider settings +

    • css_selectors (dict) -- A dictionary mapping names to CSS selectors. The names will become column headers, +and the selectors will be used to extract the required data/content.

    • +
    • xpath_selectors (dict) -- A dictionary mapping names to XPath selectors. The names will become column +headers, and the selectors will be used to extract the required data/content.

    • +
    • custom_settings (dict) -- A dictionary of optional custom settings that you might want to add to the +spider's functionality. There are over 170 settings for all kinds of options. For +details please refer to the spider settings documentation.

    • -
    • allowed_domains (list) -- (optional) A list of the allowed domains to -crawl. This ensures that the crawler does not -attempt to crawl the whole web. If not -specified, it defaults to the domains of the -URLs provided in url_list and all their -sub-domains. You can also specify a list of -sub-domains, if you want to only crawl those.

    • +
    • allowed_domains (list) -- A list of the allowed domains to crawl. This ensures that the crawler does not +attempt to crawl the whole web. If not specified, it defaults to the domains of +the URLs provided in url_list and all their sub-domains. You can also specify +a list of sub-domains, if you want to only crawl those.

    -
    Examples:
    -

    +

    Examples

    Crawl a website and let the crawler discover as many pages as available

    >>> import advertools as adv
    ->>> adv.crawl('http://example.com', 'output_file.jl', follow_links=True)
    +>>> adv.crawl("http://example.com", "output_file.jl", follow_links=True)
     >>> import pandas as pd
    ->>> crawl_df = pd.read_json('output_file.jl', lines=True)
    +>>> crawl_df = pd.read_json("output_file.jl", lines=True)
     

    Crawl a known set of pages (on a single or multiple sites) without following links (just crawl the specified pages) or "list mode":

    -
    >>> adv.crawl(['http://exmaple.com/product', 'http://exmaple.com/product2',
    -...            'https://anotherexample.com', 'https://anotherexmaple.com/hello'],
    -...            'output_file.jl', follow_links=False)
    +
    >>> adv.crawl(
    +...     [
    +...         "http://exmaple.com/product",
    +...         "http://exmaple.com/product2",
    +...         "https://anotherexample.com",
    +...         "https://anotherexmaple.com/hello",
    +...     ],
    +...     "output_file.jl",
    +...     follow_links=False,
    +... )
     

    Crawl a website, and in addition to standard SEO elements, also get the @@ -643,10 +643,15 @@

    Spider Custom Settings and Additional Functionalityauthor_url. Note that you need to specify if you want the text attribute or the href attribute if you are working with links (and all other selectors).

    -
    >>> adv.crawl('http://example.com', 'output_file.jl',
    -...           css_selectors={'price': '.a-color-price::text',
    -...                          'author': '.contributorNameID::text',
    -...                          'author_url': '.contributorNameID::attr(href)'})
    +
    >>> adv.crawl(
    +...     "http://example.com",
    +...     "output_file.jl",
    +...     css_selectors={
    +...         "price": ".a-color-price::text",
    +...         "author": ".contributorNameID::text",
    +...         "author_url": ".contributorNameID::attr(href)",
    +...     },
    +... )
     

    diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 8e8eedea..d8c28484 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["advertools", "advertools.ad_create", "advertools.ad_from_string", "advertools.cli", "advertools.cli.cli", "advertools.code_recipes", "advertools.code_recipes.spider_strategies", "advertools.crawlytics", "advertools.emoji", "advertools.extract", "advertools.header_spider", "advertools.image_spider", "advertools.knowledge_graph", "advertools.kw_generate", "advertools.logs", "advertools.regex", "advertools.reverse_dns_lookup", "advertools.robotstxt", "advertools.serp", "advertools.sitemaps", "advertools.spider", "advertools.stopwords", "advertools.survey", "advertools.twitter", "advertools.url_builders", "advertools.urlytics", "advertools.word_frequency", "advertools.word_tokenize", "advertools.youtube", "include_changelog", "index", "modules", "readme"], "filenames": ["advertools.rst", "advertools.ad_create.rst", "advertools.ad_from_string.rst", "advertools.cli.rst", "advertools.cli.cli.rst", "advertools.code_recipes.rst", "advertools.code_recipes.spider_strategies.rst", "advertools.crawlytics.rst", "advertools.emoji.rst", "advertools.extract.rst", "advertools.header_spider.rst", "advertools.image_spider.rst", "advertools.knowledge_graph.rst", "advertools.kw_generate.rst", "advertools.logs.rst", "advertools.regex.rst", "advertools.reverse_dns_lookup.rst", "advertools.robotstxt.rst", "advertools.serp.rst", "advertools.sitemaps.rst", "advertools.spider.rst", "advertools.stopwords.rst", "advertools.survey.rst", "advertools.twitter.rst", "advertools.url_builders.rst", "advertools.urlytics.rst", "advertools.word_frequency.rst", "advertools.word_tokenize.rst", "advertools.youtube.rst", "include_changelog.rst", "index.rst", "modules.rst", "readme.rst"], "titles": ["advertools package", "Create Ads on a Large Scale", "Create Ads Using Long Descriptive Text (top-down approach)", "advertools.cli module", "advertools Command Line Interface (CLI)", "advertools.code_recipes package", "\ud83d\udd77 SEO Crawling & Scraping: Strategies & Recipes", "Crawling and Scraping Analysis", "Emoji: Extract, Analyze, and Get Insights", "Extract structured entities from text lists", "\ud83d\udd77 Python Status Code Checker with Response Headers", "Image Crawler and Downloader", "Import and Analyze Knowledge Graph Results on a Large Scale", "Generate Keywords for SEM Campaigns", "Log File Analysis", "Regular Expressions for Extracting Structured Entities", "Reverse DNS Lookup in Bulk", "\ud83e\udd16 Analyze and Test robots.txt Files on a Large Scale", "Import Search Engine Results Pages (SERPs) for Google and YouTube", "Download, Parse, and Analyze XML Sitemaps", "\ud83d\udd77 Python SEO Crawler / Spider", "Stopwords in Several Languages", "Survey - share feedback", "Twitter Data API", "URL Builders", "Split, Parse, and Analyze URL Structure", "Text Analysis", "Tokenize Words (N-grams)", "YouTube Data API", "advertools", "advertools", "advertools", "advertools: productivity & analysis tools to scale your online marketing"], "terms": {"cli": [0, 29, 30, 31], "code_recip": [0, 29, 30, 31], "seo": [0, 5, 12, 13, 17, 19, 26, 29, 31], "crawl": [0, 5, 10, 11, 16, 17, 25, 29, 30, 31, 32], "scrape": [0, 5, 14, 20, 29, 30, 31], "strategi": [0, 5, 7, 10, 11, 13, 17, 19, 20, 28, 30], "recip": [0, 5, 20, 29, 30], "how": [0, 2, 5, 7, 8, 9, 10, 13, 17, 19, 20, 23, 25, 26, 29, 30, 31, 32], "list": [0, 1, 2, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32], "page": [0, 2, 4, 5, 7, 9, 10, 11, 12, 13, 14, 17, 19, 21, 23, 25, 26, 28, 29, 30, 31, 32], "those": [0, 2, 4, 5, 7, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 25, 26, 28, 29, 30, 32], "onli": [0, 1, 4, 5, 7, 9, 10, 11, 14, 15, 17, 18, 19, 20, 23, 24, 26, 28, 29, 30, 32], "mode": [0, 4, 5, 9, 23, 29, 30, 31], "can": [0, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 32], "i": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 32], "websit": [0, 4, 5, 12, 14, 17, 18, 19, 20, 25, 28, 29, 30, 31, 32], "includ": [0, 4, 5, 7, 9, 11, 13, 14, 17, 18, 19, 20, 23, 25, 27, 28, 29, 30], "its": [0, 1, 4, 5, 7, 8, 10, 12, 13, 14, 19, 20, 23, 25, 26, 28, 30, 32], "sub": [0, 4, 5, 7, 8, 9, 11, 14, 17, 19, 20, 23, 25, 29, 30, 32], "domain": [0, 4, 5, 7, 10, 14, 16, 17, 18, 20, 25, 29, 30], "save": [0, 5, 7, 10, 11, 14, 17, 20, 25, 29, 30, 32], "copi": [0, 5, 30, 32], "log": [0, 5, 16, 18, 19, 20, 25, 28, 31, 32], "my": [0, 1, 5, 9, 20, 26, 30], "audit": [0, 5, 17, 19, 20, 30], "them": [0, 2, 4, 5, 7, 9, 10, 11, 13, 14, 16, 17, 19, 20, 23, 25, 26, 29, 30, 32], "later": [0, 5, 14, 19, 30], "automat": [0, 5, 18, 28, 30, 32], "stop": [0, 4, 5, 20, 26, 29, 30, 32], "base": [0, 2, 5, 8, 10, 11, 15, 18, 20, 23, 26, 28, 29, 30, 32], "certain": [0, 4, 5, 7, 9, 10, 12, 14, 16, 17, 19, 20, 21, 25, 26, 29, 30], "condit": [0, 5, 11, 14, 20, 30], "di": [0, 5, 11, 30], "obei": [0, 5, 11, 14, 30], "robot": [0, 5, 11, 14, 19, 20, 29, 30, 31, 32], "txt": [0, 5, 8, 11, 14, 19, 20, 29, 30, 31, 32], "rule": [0, 5, 10, 11, 14, 17, 20, 25, 30, 32], "do": [0, 2, 4, 5, 7, 9, 10, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 30, 32], "set": [0, 2, 4, 5, 7, 10, 11, 12, 13, 14, 18, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32], "user": [0, 4, 5, 9, 11, 13, 14, 16, 18, 20, 23, 28, 29, 30, 31, 32], "agent": [0, 5, 10, 11, 14, 16, 20, 29, 30, 31, 32], "while": [0, 4, 5, 7, 14, 18, 23, 25, 26, 28, 29, 30, 31], "control": [0, 5, 10, 11, 18, 20, 29, 30, 32], "number": [0, 5, 7, 8, 12, 13, 16, 17, 18, 19, 20, 23, 26, 28, 29, 30, 31, 32], "concurr": [0, 5, 18, 28, 29, 30], "request": [0, 5, 7, 10, 11, 12, 14, 16, 18, 20, 23, 28, 29, 30, 32], "slow": [0, 5, 30], "down": [0, 5, 13, 14, 26, 29, 30, 31, 32], "so": [0, 2, 5, 7, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 30, 32], "don": [0, 1, 4, 5, 7, 9, 10, 14, 18, 20, 25, 26, 29, 30, 32], "t": [0, 1, 4, 5, 7, 9, 10, 13, 14, 18, 20, 25, 26, 27, 29, 30, 32], "hit": [0, 5, 10, 20, 30], "server": [0, 5, 10, 14, 16, 18, 20, 28, 30], "too": [0, 5, 9, 20, 26, 30, 32], "hard": [0, 5, 30], "multipl": [0, 4, 5, 7, 9, 12, 17, 18, 19, 20, 29, 30, 32], "same": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29, 30, 32], "job": [0, 5, 13, 30, 32], "want": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 30, 32], "follow": [0, 2, 4, 5, 7, 8, 9, 14, 18, 19, 21, 23, 25, 26, 28, 29, 30, 31, 32], "link": [0, 4, 5, 9, 10, 18, 19, 23, 25, 28, 29, 30, 31, 32], "from": [0, 5, 7, 11, 12, 14, 15, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 31, 32], "specifi": [0, 2, 5, 7, 9, 12, 14, 17, 18, 20, 23, 27, 28, 29, 30, 32], "depth": [0, 5, 10, 20, 30], "paus": [0, 5, 30], "resum": [0, 5, 30, 32], "make": [0, 1, 2, 5, 7, 9, 10, 14, 16, 17, 18, 19, 20, 23, 25, 26, 29, 30, 32], "sure": [0, 1, 2, 5, 9, 10, 16, 18, 20, 23, 25, 29, 30], "twice": [0, 5, 26, 29, 30], "us": [0, 1, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 29, 30, 31, 32], "proxi": [0, 5, 16, 30], "chang": [0, 2, 4, 5, 11, 14, 17, 18, 20, 26, 32], "default": [0, 2, 4, 5, 9, 12, 13, 14, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 32], "header": [0, 4, 5, 7, 17, 19, 20, 29, 30, 31, 32], "xpath": [0, 4, 5, 29, 30, 31, 32], "express": [0, 4, 5, 7, 8, 9, 11, 13, 14, 17, 18, 20, 26, 29, 30, 31, 32], "custom": [0, 4, 5, 10, 11, 14, 18, 29, 30, 31, 32], "extract": [0, 5, 7, 14, 17, 25, 29, 30, 31, 32], "creat": [0, 6, 7, 8, 10, 11, 12, 13, 18, 23, 25, 28, 29, 30, 31, 32], "ad": [0, 4, 7, 9, 13, 20, 23, 24, 26, 28, 29, 30, 31, 32], "larg": [0, 6, 8, 14, 16, 18, 19, 20, 26, 29, 30, 31, 32], "scale": [0, 16, 29, 30, 31], "long": [0, 1, 4, 7, 9, 14, 16, 17, 18, 23, 25, 28, 29, 30, 31, 32], "descript": [0, 6, 7, 9, 12, 13, 20, 23, 25, 26, 28, 29, 30, 31, 32], "text": [0, 1, 6, 7, 10, 14, 20, 21, 23, 27, 28, 29, 31], "top": [0, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 23, 25, 26, 28, 29, 30, 31, 32], "approach": [0, 13, 25, 26, 29, 30, 31], "googl": [0, 4, 14, 16, 17, 25, 28, 29, 30, 31, 32], "facebook": [0, 17, 24, 26, 29, 30, 31], "feed": [0, 28, 29, 30, 31], "instant": [0, 29, 30, 31], "articl": [0, 7, 19, 25, 29, 30, 31, 32], "analysi": [0, 9, 10, 16, 19, 20, 23, 29, 31], "analyz": [0, 10, 18, 20, 21, 23, 26, 29, 30, 31, 32], "imag": [0, 10, 12, 14, 17, 18, 19, 20, 23, 29, 30, 31], "redirect": [0, 4, 14, 20, 29, 30, 31, 32], "handl": [0, 6, 14, 16, 17, 18, 23, 29, 30, 31, 32], "veri": [0, 1, 6, 10, 12, 13, 14, 16, 17, 19, 20, 23, 25, 26, 29, 30, 31, 32], "file": [0, 1, 6, 10, 16, 18, 19, 20, 25, 29, 30, 31, 32], "compress": [0, 14, 25, 29, 30, 31], "explor": [0, 8, 9, 19, 20, 21, 23, 29, 30, 31], "column": [0, 4, 6, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 29, 30, 31], "data": [0, 4, 9, 10, 11, 13, 17, 18, 19, 25, 26, 29, 30, 31, 32], "type": [0, 2, 4, 6, 9, 10, 12, 13, 14, 18, 20, 23, 25, 26, 28, 29, 30, 31, 32], "parquet": [0, 14, 25, 29, 30, 31], "function": [0, 2, 4, 6, 8, 10, 11, 12, 13, 16, 17, 18, 19, 25, 26, 27, 29, 30, 31, 32], "emoji": [0, 20, 26, 29, 30, 31, 32], "get": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32], "insight": [0, 6, 19, 26, 29, 30, 31, 32], "search": [0, 10, 12, 17, 19, 23, 24, 25, 28, 29, 30, 31, 32], "structur": [0, 6, 7, 10, 13, 19, 23, 29, 30, 31, 32], "entiti": [0, 12, 17, 19, 23, 29, 30, 31, 32], "hashtag": [0, 15, 17, 23, 26, 29, 30, 31, 32], "mention": [0, 12, 15, 23, 25, 26, 29, 30, 31, 32], "currenc": [0, 26, 29, 30, 31, 32], "1234567890\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u32ba\ud804\udc5b\ud800\udd0d\ud802\udcaa\u24f2\ud804\udc63\ud800\udd28\ud802\udd1b": [0, 29, 30, 31], "question": [0, 2, 19, 23, 26, 27, 29, 30, 31, 32], "\u0294": [0, 29, 30, 31], "exclam": [0, 27, 29, 30, 31], "python": [0, 4, 8, 21, 23, 29, 30, 31, 32], "statu": [0, 4, 7, 8, 14, 20, 23, 28, 29, 30, 31, 32], "code": [0, 4, 6, 7, 8, 9, 11, 12, 14, 18, 19, 20, 23, 24, 28, 29, 30, 31, 32], "checker": [0, 29, 30, 31], "respons": [0, 4, 7, 11, 12, 14, 17, 18, 19, 20, 23, 28, 29, 30, 31, 32], "crawler": [0, 6, 10, 14, 29, 30, 31, 32], "download": [0, 6, 7, 10, 17, 20, 25, 28, 29, 30, 31, 32], "name": [0, 1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 23, 24, 25, 26, 28, 29, 30, 31, 32], "import": [0, 1, 2, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32], "knowledg": [0, 28, 29, 30, 31], "graph": [0, 20, 29, 30, 31], "result": [0, 1, 6, 7, 8, 11, 14, 17, 19, 20, 23, 25, 26, 28, 29, 30, 31, 32], "account": [0, 13, 17, 18, 23, 26, 28, 29, 30, 31], "setup": [0, 29, 30, 31], "": [0, 1, 2, 4, 6, 7, 9, 10, 11, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29, 30, 31, 32], "api": [0, 7, 9, 18, 29, 30, 31, 32], "gener": [0, 9, 14, 17, 20, 24, 25, 26, 28, 29, 30, 31, 32], "keyword": [0, 8, 12, 20, 21, 26, 29, 30, 31, 32], "sem": [0, 20, 29, 31], "campaign": [0, 1, 4, 24, 29, 30, 31], "run": [0, 4, 6, 8, 11, 12, 13, 16, 17, 18, 19, 20, 23, 25, 26, 29, 30, 31, 32], "logs_to_df": [0, 29, 30, 31], "support": [0, 10, 17, 18, 20, 23, 28, 29, 30, 31, 32], "format": [0, 1, 2, 7, 10, 11, 13, 15, 17, 18, 20, 23, 28, 29, 30, 31, 32], "prepar": [0, 8, 19, 29, 30, 31], "pars": [0, 10, 11, 20, 29, 30, 31, 32], "datafram": [0, 6, 7, 8, 9, 11, 13, 17, 18, 19, 20, 23, 25, 26, 29, 30, 31, 32], "regular": [0, 4, 7, 8, 9, 11, 14, 20, 26, 29, 30, 31], "revers": [0, 14, 18, 23, 28, 29, 30, 31], "dn": [0, 14, 29, 30, 31], "lookup": [0, 14, 23, 29, 30, 31], "bulk": [0, 29, 30, 31], "test": [0, 8, 29, 30, 31, 32], "tester": [0, 29, 30, 31], "engin": [0, 10, 12, 13, 14, 17, 19, 29, 30, 31, 32], "serp": [0, 12, 25, 29, 30, 31, 32], "youtub": [0, 12, 26, 29, 30, 31, 32], "xml": [0, 10, 17, 25, 29, 30, 31, 32], "sitemap": [0, 17, 20, 25, 29, 30, 31, 32], "index": [0, 4, 7, 10, 12, 14, 18, 20, 23, 29, 31, 32], "new": [0, 6, 7, 9, 14, 18, 25, 26, 29, 30, 31, 32], "video": [0, 17, 18, 23, 26, 28, 29, 30, 31, 32], "spider": [0, 4, 6, 10, 11, 14, 29, 30, 31, 32], "discoveri": [0, 29, 30, 31], "On": [0, 2, 23, 29, 30, 31], "element": [0, 2, 6, 7, 9, 10, 12, 29, 30, 31, 32], "pre": [0, 14, 26, 29, 30, 31], "determin": [0, 13, 18, 26, 29, 30, 31], "analyt": [0, 25, 26, 29, 30], "consol": [0, 18, 25, 28, 30], "css": [0, 4, 6, 29, 30, 31, 32], "selector": [0, 4, 29, 30, 31, 32], "behavior": [0, 4, 10, 11, 19, 28, 29, 30, 31, 32], "url": [0, 2, 6, 7, 9, 10, 11, 12, 14, 15, 17, 18, 19, 23, 26, 28, 29, 30, 31, 32], "queri": [0, 11, 12, 14, 17, 18, 19, 23, 28, 29, 30, 31, 32], "paramet": [0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 23, 24, 26, 27, 28, 29, 30, 31, 32], "regex": [0, 6, 7, 8, 9, 11, 14, 15, 26, 29, 30, 32], "pattern": [0, 4, 6, 7, 9, 11, 17, 19, 25, 26, 30], "addit": [0, 2, 6, 9, 11, 14, 16, 18, 23, 26, 28, 29, 30, 31, 32], "stopword": [0, 26, 29, 30, 31, 32], "sever": [0, 6, 7, 10, 14, 18, 23, 26, 28, 29, 30, 31, 32], "languag": [0, 6, 10, 12, 13, 18, 19, 20, 23, 25, 26, 28, 29, 30, 31, 32], "twitter": [0, 6, 9, 10, 17, 20, 24, 29, 30, 31, 32], "authent": [0, 16, 18, 28, 29, 30, 31], "builder": [0, 29, 30, 31], "split": [0, 2, 14, 19, 20, 26, 27, 29, 30, 31, 32], "The": [0, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 26, 27, 28, 29, 30, 31, 32], "path": [0, 6, 7, 10, 11, 14, 17, 19, 20, 29, 30, 31], "directori": [0, 11, 29, 30, 31], "absolut": [0, 16, 17, 25, 29, 30, 31, 32], "weight": [0, 29, 30, 31, 32], "word": [0, 1, 2, 8, 9, 12, 13, 14, 18, 19, 23, 29, 30, 31, 32], "count": [0, 1, 7, 8, 9, 14, 16, 17, 19, 23, 27, 29, 30, 31, 32], "v": [0, 19, 30], "frequenc": [0, 8, 9, 16, 29, 30, 32], "token": [0, 26, 29, 30, 31], "n": [0, 4, 6, 7, 19, 29, 30, 31], "gram": [0, 4, 29, 30, 31], "digit": [0, 32], "market": [0, 12, 13, 18, 20, 24, 29], "product": [0, 1, 2, 12, 13, 18, 20, 25, 26, 29], "tool": [0, 10, 14, 18, 19, 20, 25], "when": [1, 4, 6, 9, 10, 12, 14, 17, 18, 19, 20, 23, 26, 28, 29, 32], "you": [1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 30, 32], "also": [1, 2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 32], "need": [1, 2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 23, 26, 29, 32], "For": [1, 4, 6, 7, 10, 12, 14, 17, 18, 19, 20, 23, 25, 26, 28], "similar": [1, 7, 9, 20, 25, 28, 29], "categori": [1, 18, 19, 25, 28], "typic": [1, 2, 7, 9, 10, 14, 16, 18, 19, 20, 23, 25, 26, 28, 32], "replac": [1, 14, 19, 25, 29, 32], "latest": [1, 2, 4, 20, 23], "now": [1, 2, 7, 9, 13, 14, 17, 19, 20, 23, 26, 29], "mani": [1, 2, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 32], "time": [1, 2, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 23, 26, 28, 29, 32], "have": [1, 2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "advertool": [1, 2, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 23, 25, 26], "adv": [1, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 23, 25, 26], "dubai": 1, "tokyo": 1, "singapor": 1, "ad_creat": [1, 13, 20, 29, 32], "templat": [1, 2, 6, 19], "5": [1, 7, 8, 9, 12, 13, 14, 16, 17, 18, 19, 20, 21, 26, 30], "star": [1, 19], "hotel": [1, 8, 18], "max_len": [1, 4, 13], "30": [1, 2, 14, 17, 18, 19, 30], "fallback": 1, "great": [1, 9, 20, 25, 26, 32], "citi": [1, 12], "In": [1, 2, 6, 7, 9, 11, 12, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "an": [1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 26, 27, 28, 29, 30, 32], "thing": [1, 2, 9, 12, 13, 19, 20, 25, 27, 30, 32], "watch": [1, 19, 23], "out": [1, 9, 12, 14, 17, 18, 20, 23, 25, 26, 28, 32], "sinc": [1, 2, 7, 9, 10, 19, 20, 23, 26], "limit": [1, 2, 12, 17, 18, 20, 23, 28, 32], "each": [1, 2, 4, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 32], "slot": [1, 2, 29, 32], "exce": [1, 2], "thi": [1, 2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 32], "provid": [1, 2, 4, 6, 7, 9, 11, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "case": [1, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 29, 32], "longer": [1, 2, 9, 18, 26, 28, 29], "than": [1, 2, 17, 18, 20, 23, 26, 28, 29, 32], "lisbon": 1, "porto": 1, "algarv": 1, "freixo": 1, "de": [1, 6, 12, 13, 20], "espada": 1, "\u00e0": 1, "cinta": 1, "portug": 1, "capit": [1, 2, 4, 12, 13], "true": [1, 2, 4, 6, 7, 9, 10, 11, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29], "sourc": [1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 24, 25, 26, 27, 28], "insert": [1, 25], "string": [1, 2, 7, 8, 9, 12, 15, 18, 23, 24, 27, 28, 29], "place": [1, 6, 8, 9, 11, 12, 23, 29], "within": [1, 2, 13, 18, 20, 23, 26, 27, 28], "str": [1, 2, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 23, 24, 25, 26], "brace": 1, "e": [1, 4, 6, 7, 10, 12, 13, 18, 20, 24, 25, 26, 28, 29], "g": [1, 4, 10, 18, 20, 24, 28, 29], "todai": [1, 8, 9], "int": [1, 7, 9, 11, 13, 16, 18, 19, 23, 26, 29], "maximum": [1, 2, 12, 13, 16, 18, 19, 20, 23, 28], "allow": [1, 2, 4, 10, 14, 17, 18, 20, 23, 25, 28, 29, 32], "length": [1, 2, 10, 19, 23, 25, 26, 27, 29], "full": [1, 6, 7, 8, 10, 11, 13, 19, 20, 23, 26, 29, 32], "bool": [1, 2, 9, 13, 18, 19, 20, 23, 25, 26], "whether": [1, 2, 4, 6, 7, 9, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29], "return": [1, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 32], "let": [1, 2, 7, 9, 12, 13, 17, 18, 19, 20, 26, 28, 32], "one": [1, 2, 4, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "two": [1, 2, 6, 7, 9, 11, 13, 15, 17, 18, 20, 25, 26, 28, 29, 32], "three": [1, 6, 9, 19, 20, 23, 25, 26, 29, 32], "20": [1, 4, 9, 12, 14, 17, 18, 19, 20, 23, 26, 28, 29], "One": [1, 7, 10, 13, 17, 19, 20, 26], "favorit": [1, 9, 23, 26], "car": 1, "toyota": [1, 13], "bmw": [1, 13], "merced": 1, "lamborghini": 1, "28": [1, 17], "keep": [1, 6, 8, 12, 13, 16, 17, 20, 23, 26, 29, 32], "As": [1, 6, 7, 16, 17, 19, 25, 26, 27, 28, 32], "50": [1, 17, 18, 26, 29], "fals": [1, 2, 6, 7, 9, 13, 14, 17, 19, 20, 23, 25, 26, 29], "produc": [1, 14, 18, 19, 32], "error": [1, 4, 6, 14, 16, 18, 20, 28, 29], "someth": [1, 2, 26], "traceback": 1, "most": [1, 2, 6, 7, 9, 10, 13, 14, 18, 19, 20, 23, 26, 28, 29, 32], "recent": [1, 23, 28], "call": [1, 18, 19, 20, 23, 25, 26, 29, 32], "last": [1, 2, 9, 17, 19, 20, 25, 26, 29], "input": [1, 2], "line": [1, 6, 7, 10, 12, 14, 16, 17, 18, 20, 29, 30], "1": [1, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 30], "modul": [1, 9, 20, 26, 29, 30, 31, 32], "26": [1, 7, 9, 10, 14, 20, 24, 30], "valueerror": [1, 29], "should": [1, 4, 6, 9, 10, 11, 12, 17, 18, 20, 23, 26, 28, 32], "char": 1, "about": [2, 6, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 30, 32], "your": [2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 20, 23, 24, 25, 26, 28, 30], "especi": [2, 6, 13, 17, 19, 26], "respect": [2, 6, 7, 14, 20, 23, 26, 29], "land": [2, 13, 32], "ha": [2, 6, 7, 9, 13, 16, 17, 19, 20, 23, 25, 26, 28, 29, 32], "becom": [2, 4, 14, 20, 25, 26], "consider": [2, 26, 32], "platform": [2, 26, 32], "exampl": [2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "90": [2, 14], "charact": [2, 4, 9, 18, 23, 26, 27, 28, 29], "total": [2, 14, 17, 26], "270": 2, "That": [2, 6, 9, 20, 26, 28], "more": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "enough": [2, 13, 18, 26, 28], "space": [2, 4, 18, 19, 23, 27, 29], "talk": 2, "main": [2, 7, 12, 17, 18, 19, 20, 23, 25, 26, 29, 32], "featur": [2, 11, 18, 19, 23, 28, 29, 32], "util": [2, 23], "all": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "detail": [2, 4, 6, 7, 10, 11, 13, 14, 17, 18, 20, 23, 28, 32], "fit": [2, 28, 29], "correctli": 2, "given": [2, 6, 11, 17, 18, 19, 20, 23, 25, 29], "ar": [2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 32], "ad_from_str": [2, 13, 20, 29, 32], "doe": [2, 6, 8, 9, 16, 17, 18, 19, 20, 26, 27, 28, 32], "exactli": [2, 7, 8, 28], "divid": [2, 26], "ani": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "remain": [2, 19, 27], "append": [2, 17, 18, 20, 29], "end": [2, 7, 9, 10, 18, 20, 25, 27, 29, 32], "anoth": [2, 7, 10, 13, 14, 19, 25, 26, 27, 32], "benefit": [2, 25, 32], "take": [2, 6, 7, 9, 12, 13, 14, 17, 19, 20, 23, 25, 26, 29, 32], "write": [2, 7, 32], "onc": [2, 4, 6, 7, 12, 13, 14, 18, 19, 20, 23, 25, 26, 28, 30, 32], "easili": [2, 6, 7, 10, 14, 17, 19, 21, 23, 25, 32], "differ": [2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 18, 19, 20, 23, 25, 26, 28, 32], "here": [2, 7, 8, 9, 10, 13, 14, 18, 19, 20, 25, 26, 32], "quick": [2, 7, 17, 19], "overview": [2, 7, 8, 9, 16, 19, 32], "avail": [2, 4, 6, 7, 10, 11, 12, 14, 15, 18, 19, 20, 21, 23, 25, 26, 28, 29, 32], "option": [2, 6, 7, 9, 10, 11, 13, 14, 17, 18, 20, 21, 23, 25, 26, 27, 28, 29, 32], "would": [2, 6, 7, 9, 11, 14, 17, 18, 19, 20, 23, 25, 26, 28], "note": [2, 7, 9, 12, 18, 20, 23, 25, 26, 28, 32], "although": [2, 20, 26, 32], "other": [2, 4, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "group": [2, 4, 7, 8, 9, 13, 17, 29, 32], "fewer": 2, "sep": [2, 29], "separ": [2, 4, 7, 9, 14, 18, 20, 23, 25, 28, 29], "which": [2, 4, 6, 7, 9, 10, 11, 12, 14, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 32], "none": [2, 4, 7, 8, 9, 10, 11, 12, 14, 17, 18, 20, 23, 24, 25, 26, 28], "whitespac": [2, 26, 27, 29], "els": [2, 12, 23, 26], "sometim": [2, 6, 13, 17, 20, 26, 32], "might": [2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 30, 32], "hyphen": 2, "leav": [2, 17], "intact": 2, "If": [2, 6, 9, 12, 14, 18, 19, 20, 23, 25, 26, 28, 29, 30], "first": [2, 6, 7, 9, 12, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "letter": [2, 7, 8, 18, 28], "five": [2, 17, 20, 25, 26], "alwai": [2, 23, 26, 29], "six": [2, 26], "ensur": [2, 20], "remaind": [2, 29], "lost": [2, 6], "know": [2, 7, 9, 13, 14, 20, 25, 26, 32], "what": [2, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 20, 23, 25, 26, 32], "miss": [2, 9, 19, 26, 29], "shorter": [2, 28, 29], "still": [2, 9, 11, 18, 19, 23, 25, 26, 28], "consist": [2, 6, 13, 14, 23, 25, 26, 29], "desc_text": 2, "gadget": 2, "onlin": [2, 20], "gx12": 2, "model": [2, 14, 19], "come": [2, 13, 14, 26], "13": [2, 6, 7, 8, 9, 10, 11, 12, 14, 17, 19, 30], "lot": [2, 7, 10, 14, 19, 25, 32], "good": [2, 4, 6, 9, 14, 16, 19, 20, 25, 26], "stuff": [2, 32], "health": [2, 28], "start": [2, 4, 6, 9, 13, 14, 18, 19, 20, 23, 26, 28, 29, 32], "shop": [2, 20], "len": [2, 4], "130": [2, 14, 16, 19], "see": [2, 6, 7, 8, 9, 11, 12, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 32], "scenario": 2, "valu": [2, 4, 6, 10, 12, 14, 18, 19, 20, 23, 25, 26, 28, 29], "extra": [2, 14, 26], "empti": [2, 6, 7, 8, 9, 25, 26, 29], "125": [2, 16], "25": [2, 7, 9, 16, 19, 20, 24, 26, 30], "look": [2, 7, 13, 19, 23, 26], "just": [2, 4, 8, 9, 11, 14, 18, 20, 23, 26, 32], "second": [2, 6, 7, 9, 12, 13, 18, 20, 25, 29, 32], "where": [2, 4, 6, 7, 9, 10, 11, 14, 18, 19, 20, 23, 25, 26, 29, 32], "our": [2, 7, 9, 14, 23, 26], "we": [2, 7, 9, 12, 13, 14, 17, 19, 20, 25, 26, 32], "up": [2, 7, 10, 12, 13, 18, 20, 23, 25, 26, 29, 32], "15": [2, 7, 9, 12, 14, 19, 25, 28], "convert": [2, 7, 14, 20, 25, 29, 32], "A": [2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "restrict": [2, 11, 12, 18, 20, 23, 28, 29], "iter": 2, "integ": [2, 18, 28], "after": [2, 4, 6, 7, 9, 11, 18, 19, 20, 23, 25, 26, 27, 28, 32], "text_ad": 2, "accord": [2, 17, 27], "spec": 2, "short": [2, 18, 26, 28], "wai": [2, 6, 7, 9, 10, 14, 19, 20, 23, 25, 29, 32], "10": [2, 7, 8, 9, 10, 14, 17, 18, 19, 20, 23, 25, 26, 30], "bY": 2, "captial": 2, "To": [2, 11, 13, 17, 20, 26, 28, 30], "instal": [4, 6, 30], "python3": [4, 32], "m": [4, 9, 14, 17, 18, 19, 20, 26, 28, 32], "pip": [4, 6, 30, 32], "acess": 4, "go": [4, 9, 10, 11, 13, 14, 17, 18, 19, 20, 25, 26, 29], "program": [4, 23, 32], "help": [4, 6, 7, 9, 10, 14, 16, 18, 19, 20, 23, 25, 27, 29, 32], "h": [4, 7, 9, 14, 29], "access": [4, 11, 14, 17, 18, 21, 23, 28, 32], "specif": [4, 7, 10, 18, 23, 28, 32], "usag": [4, 7, 8, 9, 20, 23, 32], "web": [4, 10, 11, 12, 18, 19, 20, 21], "local": [4, 18, 23, 28], "machin": [4, 19, 32], "http": [4, 6, 7, 8, 9, 10, 11, 12, 14, 17, 19, 20, 23, 25, 26], "www": [4, 7, 8, 9, 10, 11, 14, 17, 19], "com": [4, 6, 7, 8, 9, 10, 11, 12, 14, 16, 17, 18, 19, 20, 23, 24, 25, 28], "jo": 4, "output": [4, 6, 7, 10, 11, 14, 20, 23, 25, 29], "google_robot": 4, "robotslist": 4, "multi_robot": 4, "posit": [4, 7, 9, 12, 18, 23, 28], "argument": [4, 6, 12, 18, 20, 29], "show": [4, 7, 8, 9, 12, 13, 14, 18, 20, 25, 26, 28, 29], "messag": [4, 14, 29], "exit": [4, 14], "r": 4, "0": [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26, 28, 30], "sitemap_url": [4, 19], "recurs": [4, 19, 20, 29], "fetch": [4, 17, 20, 29], "url_list": [4, 6, 10, 14, 20], "custom_set": [4, 6, 10, 11, 14, 20, 29], "output_fil": [4, 6, 7, 10, 14, 17, 20, 25, 29], "filepath": [4, 7, 20], "jl": [4, 6, 7, 10, 14, 17, 20, 29], "modifi": [4, 8, 9, 10, 11, 13, 17, 19, 20, 21, 23, 26], "equal": [4, 14, 23, 25], "sign": [4, 9, 17, 20, 25, 27], "without": [4, 6, 10, 18, 20, 25, 26, 28, 29, 32], "between": [4, 6, 13, 14, 18, 19, 20, 26, 27, 28, 32], "log_fil": [4, 6, 14, 20], "closespider_timeout": [4, 6, 20], "f": [4, 14], "field": [4, 11, 14, 18, 28, 29], "errors_fil": [4, 14], "log_format": [4, 14], "common": [4, 6, 10, 14, 18, 28], "combin": [4, 12, 13, 14, 15, 17, 18, 20, 32], "common_with_vhost": [4, 14], "nginx_error": [4, 14], "apache_error": [4, 14], "special": [4, 9, 11, 19, 20, 25, 29, 32], "instead": [4, 9, 17, 20, 23, 25, 26, 28, 29], "ip_list": [4, 16], "semkw": 4, "exact": [4, 6, 13, 23], "broad": [4, 13], "l": 4, "c": [4, 6, 10, 21], "campaign_nam": [4, 13], "contain": [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "sell": [4, 13, 19], "per": [4, 6, 7, 8, 9, 18, 19, 23, 26, 32], "match": [4, 7, 8, 9, 11, 12, 13, 14, 18, 20, 23, 28, 29], "max": [4, 10, 20], "3": [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 30], "adgroup": [4, 13], "order": [4, 7, 9, 11, 12, 13, 18, 20, 28, 29], "matter": [4, 13], "permut": [4, 13], "bui": [4, 13, 17], "arab": [4, 9, 18, 19, 21, 29], "azerbaijani": [4, 21, 29], "bengali": [4, 21, 29], "catalan": [4, 18, 21, 29], "chines": [4, 18, 21, 28, 29], "croatian": [4, 18, 21, 29], "danish": [4, 18, 21, 29], "dutch": [4, 18, 21, 29], "english": [4, 18, 21, 25, 26, 29], "finnish": [4, 18, 21, 29], "french": [4, 18, 21, 29], "german": [4, 18, 21, 29], "greek": [4, 9, 18, 21, 29], "hebrew": [4, 18, 21, 29], "hindi": [4, 19, 21, 29], "hungarian": [4, 18, 21, 29], "indonesian": [4, 18, 21, 29], "irish": [4, 21, 29], "italian": [4, 18, 21, 29], "japanes": [4, 18, 21, 29], "kazakh": [4, 21, 29], "nepali": [4, 21, 29], "norwegian": [4, 18, 21, 29], "persian": [4, 19, 21, 29], "polish": [4, 18, 21, 29], "portugues": [4, 18, 19, 21, 29], "romanian": [4, 18, 21, 29], "russian": [4, 18, 19, 21, 29], "sinhala": [4, 21, 29], "spanish": [4, 9, 18, 21, 29], "swedish": [4, 18, 21, 29], "tagalog": [4, 21, 29], "tamil": [4, 21, 29], "tatar": [4, 21, 29], "telugu": [4, 21, 29], "thai": [4, 21, 29], "turkish": [4, 18, 21, 29, 32], "ukrainian": [4, 21, 29], "urdu": [4, 19, 21, 29], "vietnames": [4, 19, 21, 29], "wordfreq": 4, "number_list": 4, "phrase_len": [4, 26, 27, 29], "text_list": [4, 8, 9, 26, 27], "sentenc": [4, 9, 26], "exclud": [4, 11, 13, 18, 20, 23, 25, 28, 29], "follow_link": [4, 6, 14, 20, 29], "d": [4, 7, 9, 10, 14, 18, 26], "allowed_domain": [4, 6, 20], "param": 4, "exclude_url_param": [4, 20, 29], "include_url_param": [4, 20, 29], "exclude_url_regex": [4, 20, 29], "include_url_regex": [4, 20, 29], "css_selector": [4, 20, 29], "xpath_selector": [4, 20, 29], "encount": [4, 14, 25], "parmet": [4, 20], "rais": [4, 20, 29], "dictionari": [4, 6, 8, 9, 10, 20, 21, 29], "map": [4, 7, 9, 12, 13, 20, 23, 32], "requir": [4, 6, 14, 18, 19, 20, 23, 24, 28, 29], "content": [4, 6, 7, 10, 12, 17, 18, 19, 20, 21, 25, 26, 28, 29, 31], "add": [4, 6, 10, 14, 20, 23, 26], "over": [4, 6, 10, 19, 20, 23, 26, 29], "170": [4, 10, 20], "kind": [4, 10, 20, 29, 32], "pleas": [4, 10, 12, 18, 20, 23, 26, 28], "refer": [4, 7, 10, 12, 14, 18, 20, 23, 25], "doc": [4, 7, 12, 23], "scrapi": [4, 6, 10, 20, 32], "org": [4, 7, 8, 10, 12], "en": [4, 6, 7, 10, 12, 19, 20, 23, 25, 28], "topic": [4, 18, 19, 23, 25, 28, 29], "html": [4, 6, 7, 10, 14, 17, 19, 20, 23, 25, 28, 29], "home": [4, 17, 28], "examl": 4, "example_output": 4, "url_1": [4, 11, 25], "url_2": [4, 11, 25], "url_3": [4, 11], "OR": [4, 18, 23, 28, 30], "process": [4, 6, 7, 10, 14, 16, 19, 25], "000": [4, 18, 23, 27], "closespider_pagecount": [4, 6, 20], "1000": [4, 18, 28], "master": [6, 10, 20], "basic": [6, 10, 13, 16, 19, 25, 32], "probabl": [6, 7, 20, 32], "achiev": [6, 27, 32], "better": [6, 7, 19, 20, 23, 25, 29, 32], "These": [6, 14, 20, 26], "some": [6, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "kei": [6, 8, 9, 12, 18, 20, 21, 23, 25, 26, 28, 29], "indic": [6, 10, 17, 18, 20, 23, 25, 28, 29], "simpli": [6, 7, 13, 14, 16, 17, 19, 20, 26], "done": [6, 7, 10, 13, 14, 18, 19, 25, 26, 32], "page_1": 6, "page_2": 6, "page_3": 6, "page_4": 6, "example_crawl_1": 6, "goe": [6, 19], "through": [6, 10, 11, 14, 17, 18, 19, 20, 23, 25, 26, 27, 28, 32], "discov": [6, 14, 20, 25, 32], "find": [6, 8, 9, 18, 20, 23, 25, 26, 28, 32], "exmapl": [6, 7, 10, 20, 25], "won": [6, 9, 26, 32], "solut": [6, 7], "therefor": [6, 18, 26, 28], "origin": [6, 11, 14, 18, 20, 25, 29], "commun": [6, 25, 32], "It": [6, 9, 10, 12, 13, 14, 16, 18, 19, 20, 23, 25, 26, 28, 32], "usual": [6, 12, 16, 23, 25, 26], "check": [6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 26, 32], "except": [6, 23, 25, 26], "stat": [6, 8, 9, 29], "etc": [6, 7, 8, 9, 12, 13, 14, 15, 18, 19, 20, 21, 25, 26, 27, 29, 32], "pass": [6, 12, 17, 18, 19, 20, 23, 32], "cutom_set": 6, "practic": [6, 14, 16, 20, 32], "give": [6, 7, 9, 10, 13, 16, 18, 20, 23, 25, 26], "extens": [6, 14, 17, 18, 25, 29], "easier": [6, 9, 13, 20, 23, 25, 29, 30, 32], "retreiv": [6, 19, 29], "website_name_crawl_1": 6, "work": [6, 7, 9, 12, 13, 14, 17, 20, 23, 26, 28, 29, 32], "website_name_crawl_2": 6, "There": [6, 7, 9, 10, 14, 18, 19, 20, 23, 25, 29, 32], "few": [6, 7, 9, 10, 11, 14, 19, 20, 25, 26, 32], "trigger": 6, "thei": [6, 7, 9, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "mostli": [6, 7, 20, 25, 26, 32], "closespider_errorcount": [6, 20], "wait": [6, 20], "hour": [6, 23], "finish": 6, "had": [6, 8, 9, 26], "investig": 6, "issu": [6, 7, 29, 32], "closespider_itemcount": [6, 20], "anyth": [6, 23, 26, 29], "item": [6, 7, 11, 13, 18, 20, 23, 25, 28, 29], "h1": [6, 7, 20], "titl": [6, 7, 9, 13, 18, 20, 25, 26, 28, 29, 32], "meta_desc": [6, 7, 20], "been": [6, 19, 23, 26, 28], "exploratori": [6, 20], "techniqu": [6, 26, 32], "thousand": [6, 8, 10, 16, 26, 32], "idea": [6, 7, 9, 13, 20, 26, 32], "mind": [6, 8, 12, 20, 23, 32], "500": [6, 7, 12, 17, 18, 23, 26, 28], "robotstxt_obei": [6, 10, 11], "under": [6, 10, 11, 12, 14, 17, 26, 29], "user_ag": [6, 10, 11, 14, 17, 20], "found": [6, 7, 11, 14, 18, 19, 23], "current": [6, 7, 14, 19, 20, 23, 28, 29, 32], "your_user_ag": 6, "high": [6, 12, 18, 19, 20, 28], "sensit": [6, 13, 23], "autom": [6, 10, 17, 32], "quickli": 6, "block": [6, 14, 17, 19, 20, 29, 32], "ban": 6, "polit": [6, 23, 25, 28], "kill": 6, "concurrent_item": 6, "100": [6, 7, 14, 18, 20, 23, 26], "concurrent_request": 6, "16": [6, 9, 11, 14, 17, 19], "concurrent_requests_per_domain": [6, 20], "8": [6, 7, 8, 9, 10, 11, 12, 14, 16, 17, 19, 20, 23, 26, 30], "concurrent_requests_per_ip": 6, "download_delai": [6, 20], "interv": [6, 32], "befor": [6, 9, 18, 20, 23, 26, 28], "consecut": [6, 20], "400": [6, 17, 26], "75": [6, 7, 8, 9, 14, 16, 17, 20], "depth_limit": [6, 20], "level": [6, 14, 18, 20, 23, 25, 28, 32], "2": [6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 30], "initi": [6, 12, 29], "reason": [6, 9, 10, 14, 17, 20, 26, 29, 32], "why": [6, 7, 14, 17, 26], "mainli": [6, 11, 13, 16, 17, 26, 27], "updat": [6, 19, 29], "site": [6, 7, 13, 17, 18, 19, 20, 25, 26, 28, 29, 32], "alreadi": [6, 26], "big": [6, 13, 14, 25], "hurri": 6, "across": [6, 7, 8, 12, 18, 19, 25, 26, 32], "dai": [6, 9, 18, 23, 26, 28], "emerg": 6, "measur": [6, 18, 28, 29], "connect": [6, 7, 17, 23, 29, 32], "batteri": 6, "left": [6, 9, 28], "off": [6, 18, 26], "extrem": [6, 10, 13, 20, 32], "simpl": [6, 7, 8, 9, 10, 16, 19, 20, 23, 26, 32], "folder": [6, 11], "rerun": 6, "worri": [6, 17], "jobdir": 6, "abov": [6, 11, 12, 20, 23, 25, 26, 29], "happen": [6, 14, 25], "accid": 6, "close": 6, "comput": [6, 14, 20], "manual": 6, "ctrl": 6, "command": [6, 14, 16, 17, 29, 30], "again": [6, 14, 19, 20, 25, 26], "wa": [6, 7, 8, 9, 11, 14, 17, 19, 20, 23, 26, 29], "manag": [6, 7, 10, 18, 23, 28, 32], "But": [6, 20, 26], "doesn": [6, 13, 14, 20, 26], "duplic": [6, 16, 18, 20, 23], "step": [6, 12, 27, 32], "3rd": 6, "parti": [6, 23], "packag": [6, 20, 21, 29, 30, 31, 32], "rotat": 6, "retri": 6, "downloader_middlewar": 6, "rotating_proxy_list_path": 6, "usernam": [6, 28], "password": 6, "ipaddress": 6, "port": [6, 25], "random": [6, 17], "user123": 6, "password123": 6, "12": [6, 7, 9, 11, 14, 17, 19, 20, 23, 30], "34": [6, 12], "56": [6, 13, 14, 16, 17, 19], "78": [6, 17], "1111": 6, "1112": 6, "1113": 6, "1114": 6, "Then": [6, 20, 23], "rotating_proxi": 6, "middlewar": [6, 14], "rotatingproxymiddlewar": 6, "610": 6, "bandetectionmiddlewar": 6, "620": 6, "read": [6, 7, 9, 11, 14, 25, 32], "normal": [6, 14, 21], "being": [6, 18, 19, 20, 23, 25, 26, 28, 29, 32], "crawldf": [6, 7], "pd": [6, 7, 9, 10, 14, 17, 19, 20, 25, 26, 29], "read_json": [6, 7, 10, 17, 20], "filter": [6, 7, 14, 18, 19, 23, 25, 28, 29], "head": [6, 7, 8, 9, 10, 13, 14, 17, 19, 20, 26, 29, 30], "_rotating_proxi": 6, "request_headers_proxi": 6, "author": [6, 18, 20, 23, 25, 28], "proxy_retry_tim": 6, "123": [6, 9], "456": [6, 9], "789": [6, 9], "101": [6, 14], "8893": 6, "b3vzy214dhg6odlld29rmgrsdfgt": 6, "nan": [6, 7, 10, 12, 14, 19, 20, 25, 29], "8894": 6, "8895": 6, "8896": 6, "4": [6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 19, 20, 23, 25, 26, 28, 30], "8897": 6, "easi": [6, 10, 13, 19, 25, 29, 32], "default_request_head": [6, 20, 29], "accept": [6, 10, 18, 20, 28, 29], "encod": [6, 10, 14, 20, 23, 24, 25, 29], "gzip": [6, 10, 20], "deflat": [6, 10, 20], "actual": [6, 12, 16, 19, 20, 25, 26, 28], "were": [6, 7, 14, 18, 19, 23, 26, 28, 29], "request_headers_": [6, 7, 20], "request_headers_accept": [6, 10, 20], "request_headers_us": [6, 10, 20], "suggest": [6, 25, 28], "tag": [6, 7, 10, 17, 18, 19, 20, 28, 29, 32], "meta": [6, 10, 18, 20, 23, 25], "attribut": [6, 7, 18, 20, 23, 26, 29], "viewport": [6, 7, 20, 29], "charset": [6, 7, 10, 20, 29], "h2": [6, 7, 20, 29], "h3": [6, 7, 10, 20], "h4": 6, "h5": 6, "h6": [6, 7, 20], "canon": [6, 7, 10, 20, 29], "rel": [6, 7, 12, 16, 17, 20, 25, 29, 32], "href": [6, 20, 29], "alt_href": [6, 7, 20], "altern": [6, 17, 20, 29], "alt_hreflang": [6, 7, 20], "hreflang": [6, 10, 29], "og_prop": 6, "properti": [6, 7, 18, 20, 28], "og": [6, 7, 20, 29], "who": [6, 9, 17, 18, 19, 23, 26, 28], "opengraph": [6, 10], "og_cont": 6, "twtr_name": 6, "twtr_content": 6, "iframe_src": 6, "ifram": 6, "src": [6, 7, 11, 20, 29], "gtm_script": 6, "script": [6, 10], "googletagmanag": 6, "gtm": 6, "j": [6, 14], "id": [6, 10, 12, 18, 20, 23, 28], "gtm_noscript": 6, "link_rel_rel": 6, "link_rel_href": 6, "link_rel_stylesheet": 6, "stylesheet": 6, "css_link": 6, "nav_links_text": [6, 20], "nav": [6, 20, 29], "anchor": [6, 20], "nav_links_href": 6, "header_links_text": [6, 20], "header_links_href": 6, "footer_links_text": [6, 20], "footer": [6, 20, 29], "footer_links_href": 6, "js_script_src": 6, "javascript": 6, "js_script_text": 6, "script_src": 6, "canonical_par": 6, "parent": [6, 28], "bunch": [7, 20], "like": [7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23, 26, 28, 29, 32], "gain": [7, 19, 30], "undersand": 7, "technic": [7, 12, 32], "readi": [7, 13, 23], "made": [7, 9, 16, 23, 26], "anayz": 7, "independ": [7, 28, 32], "size": [7, 10, 14, 17, 18, 19, 20, 23, 25, 29], "cours": [7, 10, 13, 26, 32], "togeth": [7, 8, 9, 14, 17, 23, 25, 26, 32], "put": [7, 13, 14, 19, 20, 26], "context": [7, 9, 12, 15], "thought": [7, 12], "describ": [7, 13, 26], "aspect": 7, "yet": [7, 13, 20, 25, 26], "spread": [7, 32], "everi": [7, 14, 17, 19, 20, 23, 26, 28, 32], "turn": [7, 18], "alt": [7, 20, 23, 29], "width": [7, 11, 20, 28, 29], "unpack": [7, 19], "point": [7, 8, 12, 18, 25, 28], "tidi": 7, "form": [7, 9, 12, 26], "distribut": 7, "summar": [7, 8, 9, 14], "panda": [7, 8, 9, 10, 13, 14, 17, 18, 19, 20, 23, 25, 26, 29, 32], "img_df": 7, "crawlyt": [7, 29], "img_src": [7, 20], "img_alt": [7, 20], "img_load": 7, "img_siz": 7, "img_decod": 7, "img_width": 7, "img_height": 7, "img_bord": 7, "nytim": [7, 19], "vi": 7, "asset": [7, 11], "static": [7, 11, 14, 17], "icon": [7, 18], "morning_144x144": 7, "b12a6923b6ad9102b766352261b1a847": 7, "webp": 7, "morn": [7, 9, 26], "logo": [7, 11], "upshot_144x144": 7, "0b1553ff703bbd07ac8fe73e6d215888": 7, "upshot": 7, "static01": [7, 19], "nyt": [7, 19], "2017": [7, 11, 19, 28], "01": [7, 17, 18, 19, 28, 30], "29": [7, 9, 10, 14, 19, 30], "podcast": [7, 19], "daili": 7, "album": 7, "art": [7, 28], "square320": 7, "v5": 7, "jpg": [7, 11, 19], "qualiti": [7, 10, 11, 18], "auto": [7, 11], "disabl": [7, 18], "upscal": 7, "newslett": 7, "brief": 7, "europ": 7, "email": [7, 12, 24], "500px": 7, "australia": [7, 18], "australialett": 7, "interpret": 7, "sonl": 7, "theinterpret": 7, "section": [7, 17, 18, 28], "world": [7, 19], "middleeast": [7, 19], "2024": [7, 11, 30], "multimedia": [7, 19], "25israel": 7, "hbcz": 7, "thumbwid": 7, "min": [7, 14], "1024px": 7, "205px": 7, "150px": 7, "async": 7, "150": [7, 17], "hama": 7, "icj": 7, "explain": [7, 19, 32], "wjth": 7, "qatar": 7, "israel": 7, "ctbv": 7, "becaus": [7, 12, 14, 16, 17, 20, 23, 25, 26, 32], "particular": [7, 17, 18, 19, 28], "repres": [7, 9, 12, 14, 18, 19, 23, 26], "own": [7, 9, 13, 14, 18, 23, 25, 26, 28, 32], "row": [7, 13, 14, 17, 18, 19, 26], "seen": [7, 14], "repeat": [7, 9, 25, 29], "interest": [7, 9, 10, 11, 12, 13, 14, 17, 19, 20, 26, 30], "variou": [7, 8, 9, 10, 19, 26, 29, 32], "notna": 7, "averag": 7, "mean": [7, 9, 10, 12, 13, 14, 17, 18, 20, 23, 25, 26, 32], "sort_valu": [7, 26], "ascend": [7, 26], "to_fram": 7, "round": 7, "99": [7, 9, 19, 26], "86": 7, "img_srcset": 7, "almost": [7, 14, 26], "height": [7, 11, 20, 28, 29], "immedi": [7, 17, 23], "u": [7, 13, 14, 18, 19, 20, 26, 28], "estim": 7, "plan": [7, 14], "accordingli": 7, "webpag": [7, 18, 28], "understand": [7, 12, 13, 17, 18, 19, 23, 25, 32], "intern": [7, 10, 18, 19, 20, 23], "extern": [7, 10, 14], "summari": [7, 8, 9, 11, 29, 32], "link_df": 7, "internal_url_regex": 7, "nofollow": [7, 20, 29], "skip": [7, 20, 29], "dfp": 7, "advertis": 7, "middl": [7, 29], "east": 7, "suppli": [7, 11, 16, 18, 29], "defin": [7, 12, 14, 18, 26, 28, 29], "realli": [7, 10, 13, 14, 20, 26], "could": [7, 9, 10, 13, 18, 26, 28, 29], "even": [7, 14, 17, 18, 19, 20, 23, 26, 28, 29], "consid": [7, 9, 23, 28, 32], "part": [7, 9, 13, 16, 18, 21, 25, 26, 27, 28, 32], "thu": [7, 10, 20, 26], "frequent": [7, 26], "inform": [7, 8, 10, 12, 14, 16, 18, 19, 20, 23, 25, 26, 28, 29], "present": [7, 18, 23, 29], "redirect_df": 7, "download_lat": [7, 10, 20], "redirect_tim": [7, 10, 20], "301": [7, 20], "220263": 7, "200": [7, 10, 14, 20, 23, 26], "privaci": 7, "polici": [7, 10], "079844": 7, "hc": 7, "10940941449492": 7, "403": 7, "105": [7, 14], "0630789": 7, "13537530305428": 7, "218": 7, "spotlight": 7, "project": [7, 10, 12, 18, 20, 28, 32], "protect": 7, "852014": 7, "225": [7, 14], "regul": 7, "732559": 7, "310": 7, "sahil": 7, "chinoi": 7, "435062": 7, "intermedi": 7, "well": [7, 9, 10, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "latenc": [7, 10], "back": [7, 14, 23, 25, 26, 32], "memori": [7, 14, 20, 25], "imposs": [7, 25], "availablel": 7, "subset": [7, 19], "jsonlin": [7, 10, 20], "jl_subset": [7, 29], "massiv": [7, 14, 16, 25], "reduc": 7, "consumpt": 7, "small": [7, 8, 17, 18, 28], "delet": [7, 29], "old": 7, "crawl_subset": 7, "col1": 7, "col2": 7, "column_regex": 7, "img_": [7, 20], "availab": 7, "img": [7, 11, 20, 29], "jsonld_": [7, 20], "json": [7, 10, 14, 18, 20, 23, 29], "ld": [7, 10, 20, 29], "resp_headers_": [7, 20], "redirect_": [7, 20], "links_": 7, "characterist": 7, "either": [7, 9, 13, 14, 18, 19, 23, 26, 28, 29, 32], "depend": [7, 9, 10, 12, 13, 19], "deal": [7, 32], "highli": [7, 18, 20, 28, 32], "perform": [7, 14, 16, 18, 19, 20, 28], "desir": [7, 14, 23], "jl_to_parquet": [7, 29], "much": [7, 19, 20, 26, 29], "smaller": [7, 19, 28, 29], "disk": [7, 14], "power": [7, 9, 10, 20, 32], "effici": [7, 10, 14, 16, 20, 25], "read_parquet": [7, 14, 25], "pydata": 7, "_": [7, 19], "document": [7, 10, 12, 18, 20, 23, 26, 29], "advantag": [7, 14], "select": [7, 11, 14, 18, 20, 23, 28], "parquet_column": [7, 29], "6": [7, 8, 9, 11, 12, 14, 16, 17, 19, 26, 30], "7": [7, 8, 9, 12, 14, 16, 17, 19, 23, 26, 30], "9": [7, 8, 9, 10, 12, 14, 17, 19, 20, 26, 30], "11": [7, 8, 9, 10, 14, 17, 18, 19, 20, 30], "14": [7, 9, 10, 11, 12, 14, 17, 19, 30], "nyt_crawl": 7, "value_count": [7, 14, 19], "215": 7, "doubl": [7, 29], "22": [7, 14, 17, 19, 30], "int64": [7, 14, 17, 19, 29], "struct": 7, "contenturl": [7, 12], "credittext": 7, "caption": [7, 18, 28, 29], "timestamp": [7, 14], "img_summari": 7, "image_df": 7, "chunksiz": 7, "chunk": 7, "jsonld": 7, "df_subset": 7, "jl_filepath": 7, "parquet_filepath": 7, "exist": [7, 8, 9, 13, 14, 23, 29], "parquet_fileapth": 7, "pather": 7, "identifi": [7, 18, 20, 23, 25, 28], "datatyp": 7, "columns_typ": 7, "chain": [7, 20], "inermedi": 7, "minu": [7, 20], "worth": 8, "helper": [8, 27], "aid": [8, 32], "emoji_entri": 8, "unicod": [8, 15], "textual": [8, 9], "v13": [8, 29], "public": [8, 10, 20, 23], "emoji_df": [8, 29], "extract_emoji": [8, 9, 29], "statist": [8, 9, 16, 28, 29, 32], "emoji_search": [8, 29, 32], "choic": 8, "emoji_raw": 8, "develop": [8, 12, 17, 18, 23, 28], "kaggl": [8, 32], "eliasdabba": 8, "whole": [8, 10, 20, 26], "databas": [8, 9, 14, 15, 29, 32], "vegetable_emoji": 8, "veget": 8, "codepoint": 8, "sub_group": 8, "1f951": 8, "fulli": [8, 9, 23], "qualifi": 8, "avocado": 8, "food": [8, 9, 28], "drink": [8, 9, 26], "1f346": 8, "eggplant": 8, "1f954": 8, "potato": 8, "1f955": 8, "carrot": 8, "1f33d": 8, "ear": 8, "corn": 8, "expect": [8, 10, 11, 20], "love_emoji": 8, "love": [8, 23, 26], "1f48c": 8, "smilei": [8, 9], "emot": [8, 9], "1f91f": 8, "gestur": 8, "peopl": [8, 9, 12, 23, 26, 32], "bodi": [8, 9, 10, 20, 23, 32], "hand": [8, 12, 13], "finger": 8, "partial": 8, "1f3fb": 8, "light": [8, 10], "skin": 8, "tone": 8, "1f3fc": 8, "medium": [8, 18, 24, 28], "1f3fd": 8, "1f3fe": 8, "dark": 8, "1f3ff": 8, "1f340": 8, "four": [8, 9, 17, 18, 20, 25, 26, 28], "leaf": 8, "clover": 8, "anim": [8, 9], "natur": [8, 9, 11], "plant": 8, "1f3e9": 8, "travel": [8, 9], "build": [8, 10, 14, 32], "1f94a": 8, "box": [8, 17, 19, 28], "glove": 8, "activ": [8, 9, 12, 18, 19, 28], "sport": [8, 11, 19, 28], "1f9e4": 8, "object": [8, 9, 12, 14, 19, 20, 23, 28, 32], "cloth": 8, "1f1f8": 8, "1f1ee": 8, "flag": [8, 9], "slovenia": 8, "countri": [8, 18, 20, 25, 28, 29, 32], "social": [8, 9, 20, 21, 25, 26], "media": [8, 9, 11, 14, 20, 21, 23, 25, 26], "plai": [8, 12, 18, 19, 28], "around": [8, 9, 26], "sampl": [8, 12, 19, 20], "feel": [8, 9, 26, 29], "basketbal": [8, 28], "footbal": [8, 13, 19, 28, 32], "Not": [8, 23], "emoji_summari": [8, 9], "print": [8, 9, 14, 19, 21, 29], "entri": 8, "insensit": [8, 29], "dog": 8, "1f436": 8, "face": [8, 18], "mammal": 8, "1f415": 8, "1f9ae": 8, "guid": [8, 28], "200d": 8, "1f9ba": 8, "servic": [8, 12, 13, 18, 19], "1f32d": 8, "hot": [8, 9], "blue": [8, 9, 18, 25, 26, 28], "1f499": 8, "heart": 8, "1fad0": 8, "blueberri": 8, "fruit": 8, "1f4d8": 8, "book": [8, 26], "paper": 8, "1f535": 8, "circl": 8, "symbol": [8, 9, 29], "geometr": 8, "1f7e6": 8, "squar": 8, "1f537": 8, "diamond": 8, "1f539": 8, "ones": [8, 9, 10, 14, 16, 19, 20, 26], "post": [8, 9, 21, 23, 25, 26, 30, 32], "am": [8, 26], "grin": 8, "cat": 8, "hello": [8, 9, 17, 20], "dict_kei": [8, 9, 21], "emoji_text": [8, 9], "emoji_flat": [8, 9], "emoji_flat_text": [8, 9], "emoji_count": [8, 9], "emoji_freq": [8, 9], "top_emoji": [8, 9], "top_emoji_text": [8, 9], "top_emoji_group": [8, 9], "top_emoji_sub_group": [8, 9], "yellow": [8, 18], "flat": [8, 9], "number_of_emoji": 8, "smile": 8, "num_post": [8, 9], "num_emoji": [8, 9], "emoji_per_post": [8, 9], "unique_emoji": [8, 9], "infer": 9, "contrast": 9, "compani": [9, 12, 17], "brand": [9, 12, 14, 19], "extract_": [9, 29, 32], "fucntion": 9, "extract_curr": [9, 29], "surround": [9, 29], "abbrevi": 9, "usd": 9, "eur": 9, "jpy": 9, "extract_exclam": [9, 29], "excalam": 9, "mark": [9, 23, 25, 26, 27, 29], "extract_hashtag": [9, 29], "extract_intense_word": [9, 29], "intens": [9, 29], "neg": [9, 13, 23], "looooooovvvve": 9, "extract_ment": [9, 29], "network": [9, 25], "extract_numb": [9, 29], "extract_quest": [9, 29], "extract_url": [9, 29], "extract_word": [9, 29], "arbitrari": [9, 23, 29], "rest": [9, 12, 17], "restaur": 9, "along": [9, 23, 26], "recommend": [9, 14, 20, 23], "hashtag_summari": 9, "hashtags_flat": 9, "hashtag_count": 9, "hashtag_freq": 9, "top_hashtag": 9, "num_hashtag": 9, "hashtags_per_post": 9, "unique_hashtag": 9, "proper": [9, 32], "dataset": [9, 20, 25, 26, 32], "tweet": [9, 21, 23, 26, 32], "read_csv": [9, 26], "csv": [9, 11, 14, 26], "shape": [9, 14, 19], "tweet_text": [9, 26], "followers_count": [9, 26], "aerialmagzc": [9, 26], "penguinnyyyyi": [9, 26], "afraid": [9, 26], "real": [9, 23, 26], "157": [9, 26], "vibe": [9, 26], "offic": [9, 26], "metallica": [9, 26], "boss": [9, 26], "coffe": [9, 26], "break": [9, 19, 23, 26, 29, 32], "theoffic": [9, 26], "co": [9, 26], "u5vdyevvf": [9, 26], "4687": [9, 26], "ann": [9, 26], "sai": [9, 13, 18, 20, 26, 32], "she": [9, 26], "sugar": [9, 26], "hfubv4v3ai": [9, 26], "104": [9, 16, 20, 26], "venti": [9, 26], "ic": [9, 26, 28], "pump": [9, 26], "white": [9, 18, 26, 27], "mocha": [9, 26], "sweet": [9, 26], "cream": [9, 26], "caramel": [9, 26], "drizzl": [9, 26], "shout": [9, 26], "tiktok": [9, 26], "lol": [9, 26], "126": [9, 26], "never": [9, 26], "person": [9, 12, 18, 26], "until": [9, 23, 26], "kid": [9, 26], "cup": [9, 26], "life": [9, 26, 30], "saver": [9, 26], "zo0cnvuigj": [9, 26], "1595": [9, 26], "excit": [9, 26], "next": [9, 13, 20, 26, 28, 32], "chat": [9, 26], "re": [9, 23, 26], "john": [9, 26], "bradford": [9, 26], "lineup": [9, 26], "discuss": [9, 26], "redistrict": [9, 26], "area": [9, 18, 26, 28, 32], "rsvp": [9, 26], "r3ynjjjcug": [9, 26], "join": [9, 20, 26], "meet": [9, 18, 26, 28], "ho4kx7zz24": [9, 26], "kfpdr3hupi": [9, 26], "5004": [9, 26], "he": [9, 19, 26], "paid": [9, 26], "husband": [9, 26], "165": [9, 26], "nippli": [9, 26], "outsid": [9, 14, 18, 26, 28], "side": [9, 14, 26, 27], "sound": [9, 26], "blowjob": [9, 26], "front": [9, 26], "fire": [9, 26], "visit": [9, 26], "green": [9, 18, 26], "tea": [9, 26], "hahahahahahaha": [9, 26], "spend": [9, 23, 26, 32], "pamper": [9, 26], "hope": [9, 26, 32], "everyon": [9, 26], "tuesdai": [9, 26], "enjoi": [9, 26], "189": [9, 26], "marvinmilton2": [9, 26], "nearli": [9, 26], "choke": [9, 26], "1160": [9, 26], "2000": 9, "733": 9, "3665": 9, "572": 9, "mention_summari": 9, "mentions_flat": 9, "mention_count": 9, "mention_freq": 9, "top_ment": 9, "num_ment": 9, "1346": 9, "mentions_per_post": 9, "673": 9, "unique_ment": 9, "1132": 9, "zip": [9, 14, 29], "currency_summari": 9, "currency_symbol": 9, "currency_symbols_flat": 9, "currency_symbol_count": 9, "currency_symbol_freq": 9, "top_currency_symbol": 9, "currency_symbol_nam": 9, "surrounding_text": 9, "num_currency_symbol": 9, "37": [9, 18, 19, 28], "currency_symbols_per_post": 9, "0185": 9, "unique_currency_symbol": 9, "sym": 9, "number_summari": 9, "numbers_flat": 9, "number_count": 9, "number_freq": 9, "top_numb": 9, "num_numb": 9, "1727": 9, "numbers_per_post": 9, "8635": 9, "unique_numb": 9, "257": 9, "question_summari": 9, "question_mark": 9, "question_marks_flat": 9, "question_mark_count": 9, "question_mark_freq": 9, "top_question_mark": 9, "question_mark_nam": 9, "question_text": 9, "num_question_mark": 9, "321": [9, 12], "question_marks_per_post": 9, "1605": 9, "unique_question_mark": 9, "ckaiserjr": 9, "perry_ron": 9, "lilguyisback": 9, "okai": 9, "water": 9, "flavor": 9, "think": [9, 20, 25], "ll": [9, 17, 23, 26], "loos": 9, "mayb": [9, 11, 13, 17], "exclamation_summari": 9, "exclamation_mark": 9, "exclamation_marks_flat": 9, "exclamation_mark_count": 9, "exclamation_mark_freq": 9, "top_exclamation_mark": 9, "exclamation_mark_nam": 9, "exclamation_text": 9, "num_exclamation_mark": 9, "563": 9, "exclamation_marks_per_post": 9, "2815": 9, "unique_exclamation_mark": 9, "1149": 9, "5745": 9, "279": 9, "emoji_nam": 9, "159": 9, "72": [9, 14, 17, 28], "64": [9, 17], "49": [9, 12, 14], "32": [9, 10, 14, 16, 17, 19, 20], "21": [9, 11, 14, 17, 18, 19, 20, 23, 24, 30], "601": 9, "210": 9, "97": [9, 16], "67": [9, 20], "33": [9, 12, 17], "key_nam": 9, "kwarg": [9, 10, 11], "singular": 9, "straightforward": [9, 11, 20, 25], "left_char": 9, "right_char": 9, "4k": 9, "number_of_symbol": 9, "bitcoin": 9, "dollar": [9, 27], "pound": 9, "euro": 9, "odai": 9, "ound": 9, "6666666666666667": 9, "written": [9, 17, 18, 19], "said": [9, 17], "No": [9, 18], "6666666666666666": 9, "posts2": 9, "\u0645\u0631\u062d\u0628\u0627": 9, "\u0644\u0627": 9, "\u062a\u0630\u0647\u0628": 9, "hola": 9, "c\u00f3mo": 9, "est\u00e1": 9, "displai": [9, 14, 17, 18, 28], "opposit": 9, "due": [9, 14, 23, 26, 28], "rtl": 9, "invert": 9, "number_of_hashtag": 9, "min_rep": 9, "instanc": [9, 12, 29], "repetit": 9, "looooooveee": 9, "youuuuuuu": 9, "haaatttteee": 9, "youuuuuu": 9, "both": [9, 13, 18, 20, 23, 26, 27, 28, 32], "jenni": 9, "hi": [9, 19, 26], "number_of_ment": 9, "number_separ": 9, "phone": 9, "333": 9, "444": 9, "555": 9, "number_of_numb": 9, "ask": [9, 18, 23, 29], "armenian": 9, "\u03c0\u03ce\u03c2": 9, "\u03b5\u03af\u03c3\u03b1\u03b9": 9, "\u0643\u064a\u0641": 9, "\u062d\u0627\u0644\u0643": 9, "did": [9, 19, 26], "notic": [9, 17], "correct": [9, 12, 29], "NOT": [9, 18, 28], "valid": [9, 18, 23, 24, 28], "b": [9, 10, 14], "url_summari": 9, "urls_flat": 9, "url_count": 9, "url_freq": 9, "top_url": 9, "top_domain": 9, "top_tld": 9, "number_of_url": 9, "num_url": 9, "urls_per_post": 9, "unique_url": 9, "words_to_extract": 9, "entire_words_onli": 9, "complet": [9, 13, 18, 23, 25, 26, 28], "words_to_find": 9, "rain": [9, 26], "snow": [9, 26], "noth": [9, 26], "word_summari": 9, "words_flat": 9, "word_count": 9, "word_freq": [9, 26], "top_word": 9, "num_word": 9, "words_per_post": 9, "unique_word": 9, "number_of_word": 9, "occurr": [9, 26], "occur": [9, 19, 20, 23, 26, 28, 29], "train": 9, "relat": [9, 18, 19, 20, 28, 32], "mini": 10, "known": [10, 20, 23, 26, 29], "hood": 10, "simplifi": [10, 18, 28], "interfac": [10, 18, 23, 29, 30, 32], "crawl_head": [10, 29], "assur": 10, "super": [10, 14], "fast": [10, 16, 29], "straight": 10, "forward": 10, "readthedoc": [10, 16, 20, 23], "io": [10, 16, 20, 23], "adver": [10, 14, 20], "dashboardom": 10, "povertydata": 10, "headers_df": 10, "crawl_tim": [10, 20], "download_timeout": [10, 20], "download_slot": [10, 20], "protocol": 10, "resp_headers_cont": [10, 20], "resp_headers_serv": [10, 20], "resp_headers_d": [10, 20], "resp_headers_vari": [10, 20], "redirect_ttl": [10, 20], "redirect_url": [10, 20], "redirect_reason": [10, 20], "resp_headers_x": [10, 20], "amz": 10, "resp_headers_last": [10, 20], "resp_headers_etag": 10, "serv": [10, 20], "backend": [10, 20], "rtd": [10, 20], "version": [10, 14, 20, 29], "method": [10, 14, 18, 20, 23, 28, 29, 30], "resp_headers_referr": 10, "resp_headers_permiss": 10, "resp_headers_strict": [10, 20], "transport": [10, 19, 20], "secur": [10, 20], "resp_headers_cf": [10, 20], "cach": [10, 20], "resp_headers_ag": [10, 20], "resp_headers_expir": [10, 20], "resp_headers_cach": [10, 20], "resp_headers_expect": [10, 20], "ct": [10, 20], "rai": [10, 20], "resp_headers_alt": 10, "svc": 10, "resp_headers_via": 10, "2022": [10, 14, 17, 19, 30], "02": [10, 17, 19, 30], "180": [10, 20], "0270483": 10, "nginx": [10, 20], "18": [10, 11, 14, 19, 30], "ubuntu": 10, "fri": 10, "feb": [10, 14], "gmt": [10, 20], "utf": [10, 14, 23], "applic": [10, 12, 14, 18, 20, 23, 28], "xhtml": [10, 20], "q": [10, 18, 23, 28], "rc2": 10, "06442": 10, "13270": 10, "0271282": 10, "cloudflar": [10, 20], "19": [10, 11, 17, 20, 30], "302": [10, 20], "rnkt7myjj7hcnsvbnzg9qdqizefftx9ytz3": 10, "gwnlj8m99yumucgdd6ytm": 10, "ibmo9hrztai": 10, "iyl50": 10, "ee0djx6z511tgx88": 10, "17": [10, 14, 16, 17, 19, 20, 30], "04": [10, 19, 30], "27": [10, 17, 19, 28, 30], "w": [10, 18, 19], "14c904a172315a4922f4d28948b916c2": 10, "proxito": [10, 20], "sendfil": [10, 20], "0710e93d610dd8c3": 10, "subdomain": [10, 20], "referr": [10, 24], "downgrad": 10, "cohort": [10, 32], "ag": [10, 20], "31536000": [10, 20], "includesubdomain": 10, "preload": 10, "1083": 10, "7200": 10, "604800": [10, 20], "report": [10, 16, 20, 25, 26, 29, 32], "uri": [10, 20], "cdn": 10, "cgi": 10, "beacon": 10, "6dba2aae6b424107": 10, "prg": 10, "443": 10, "ma": [10, 20], "86400": 10, "118614": 10, "26837": 10, "gunicorn": 10, "vegur": 10, "tip": 10, "mainten": 10, "task": [10, 13, 26, 27, 32], "continu": [10, 32], "hundr": [10, 20, 26], "period": 10, "basi": 10, "alert": 10, "ye": [10, 12], "ok": 10, "compon": [10, 14, 23, 25, 29], "metatag": 10, "direct": [10, 17], "noindex": 10, "byte": [10, 19, 20, 29], "With": [10, 19, 23, 26, 32], "consum": [10, 23, 25], "bandwidth": 10, "lookout": 10, "jpeg": 10, "png": [10, 11, 19, 20], "class": [10, 11, 20], "headersspid": 10, "arg": [10, 11], "dict": [10, 11, 14, 20], "autothrottle_en": [10, 11], "autothrottle_target_concurr": [10, 11], "httperror_allow_al": [10, 11], "errback": 10, "failur": 10, "headers_spid": 10, "start_request": [10, 11], "sine": 10, "speed": [10, 20, 29], "piec": 10, "expens": 10, "Being": 10, "abl": [10, 12, 17, 18, 32], "decis": [10, 19, 32], "optim": [10, 12], "dynam": [10, 20], "crawl_df": [10, 20], "experiment": [11, 29], "crawl_imag": [11, 29], "output_dir": 11, "min_width": 11, "minimum": 11, "pixel": 11, "avoid": [11, 25], "track": [11, 28, 29, 32], "navig": [11, 23], "elemenst": 11, "min_height": 11, "include_img_regex": 11, "Or": [11, 13, 20, 25], "economi": 11, "summarize_crawled_img": 11, "image_loc": [11, 19], "image_url": 11, "buzzfe": 11, "hannahdobro": 11, "dirti": 11, "littl": [11, 25, 30, 32], "industri": [11, 17, 18, 19, 32], "secret": 11, "tuh": 11, "user_imag": 11, "6r1oxxopc_larg": 11, "downsiz": 11, "120": 11, "03": [11, 17, 19, 30], "fce856744ed8": 11, "buzz": 11, "1303": 11, "1710779249": 11, "gif": 11, "base64": 11, "r0lgodlhaqabaiaaaaaaap": 11, "yh5baeaaaaalaaaaaabaaeaaaibraa7": 11, "245ecfa321e9": 11, "894": 11, "1710779358": 11, "chelseastewart": 11, "josh": 11, "peck": 11, "statement": 11, "drake": 11, "bell": 11, "abus": 11, "claim": [11, 16], "prod": 11, "v2": 11, "5590": 11, "1513102854": 11, "0_larg": 11, "ea6298160040": 11, "1093": 11, "1711048323": 11, "700": 11, "3a": 11, "2a": 11, "ivborw0kggoaaaansuheugaaafqaaaa7camaaadsf118aaaap1bmveuaaadigxpohbk5ewdfghi5fwi8grteghe7eqdmhr7": 11, "vymfddnm5hx334": 11, "py8fhdj5dlvvxnq6zjotzvbg1s8skwaaaacxrstlmav4eo10jnqa8ihfydaaabjuleqvryw93y64rcmbcg4czk5fszdav3f63bdaxfv4qm": 11, "axr96": 11, "wmnj0klhtpib9lcutya8k": 11, "f1rkxqh4kmipzviovwnszequmfjmvlb3": 11, "ysriv8zrqmwha1znqibuuv3jo3cn5fly3qimy2kitajb3": 11, "umlrxrgovgmqtj4hxc69an5hj9pcyyqzfxsavk58tjmntwgv24pw9kpe0fgbioklomczkngleuxlhyiimx": 11, "dt": 11, "xj8sxgocdz6ejcp7jspbqllibivmpewy7as1poez30pvqlaqvjrgeqtlfp1dblpyb0bdd": 11, "oyl2nhr7e34yujtjw6zmc3am": 11, "kxlspoodchrqwiwbxi85q6kc9pnehscmhj0vjgppuac3lwqo": 11, "ourl0aefg76m8izrt6eaaaaasuvork5cyii": 11, "josephlongo": 11, "celeb": 11, "wear": 11, "rewear": 11, "dress": 11, "2021": [11, 17, 19, 30], "06": [11, 19, 30], "a824550933a9": 11, "tomiobaro": 11, "2174": 11, "1622738336": 11, "41_larg": 11, "6634db63f453": 11, "576": [11, 12], "1710855734": 11, "cb8db05df7e7": 11, "1743": 11, "1710855790": 11, "taken": 11, "slug": [11, 19, 23, 25], "slash": 11, "locat": [11, 18, 19, 23, 25, 28, 32], "tabl": [11, 12, 13, 20, 32], "advimagespipelin": 11, "store_uri": 11, "download_func": 11, "imagespipelin": 11, "file_path": 11, "info": [11, 14, 18, 29], "store": [11, 14, 20], "imagespid": 11, "item_pipelin": 11, "image_spid": 11, "imgitem": 11, "start_url": 11, "behaviour": [11, 20], "image_dir": 11, "tha": 11, "rank": [12, 20, 29, 32], "zero": [12, 18, 20, 28], "comparison": [12, 16], "elig": 12, "score": [12, 26], "suitabl": 12, "critic": [12, 18], "clear": [12, 13, 23], "reliabl": 12, "view": [12, 18, 23, 26, 28], "send": [12, 14, 23, 32], "bill": [12, 18], "credenti": [12, 18, 23, 28], "shown": [12, 25], "below": [12, 18, 20, 26, 27, 28], "And": [12, 14], "your_google_developer_kei": 12, "knowledge_graph": [12, 29], "resultscor": 12, "203191": 12, "corpor": 12, "organ": 12, "technologi": [12, 28], "49462": 12, "19142": 12, "gmail": 12, "13251": 12, "7549": 12, "softwareappl": 12, "drive": 12, "6853": 12, "6543": 12, "browser": 12, "chrome": [12, 14], "4312": 12, "multin": 12, "conglomer": 12, "alphabet": [12, 18, 28], "inc": 12, "3395": 12, "1306": 12, "detaileddescript": 12, "articlebodi": 12, "licens": [12, 18, 28], "query_tim": [12, 29], "dtype": [12, 14, 17, 19], "203": [12, 14], "191": 12, "462": 12, "understood": 12, "fall": [12, 18, 23, 28], "inherit": 12, "everyth": [12, 23, 26], "hierarchi": 12, "belong": [12, 16, 19, 23], "funcion": 12, "manner": [12, 25], "aggreg": 12, "bing": 12, "fr": [12, 18, 20], "x": [12, 13, 14, 18, 19, 20, 32], "evalu": 12, "3587": 12, "suchmaschinenoptimierung": 12, "lokal": 12, "252": 12, "suchmaschinenmarket": 12, "71756": 12, "5056": 12, "seop": 12, "3313": 12, "seoul": 12, "administrativearea": 12, "hauptstadt": 12, "von": 12, "s\u00fcdkorea": 12, "1509": 12, "yea": 12, "ji": 12, "schauspielerin": 12, "584": 12, "actriz": 12, "posicionamiento": 12, "buscador": 12, "35": [12, 14, 20], "316": 12, "jin": 12, "cantant": 12, "53": [12, 14], "8760": 12, "54": [12, 19], "south": 12, "korea": 12, "55": [12, 13, 19], "1435": 12, "sulli": 12, "korean": [12, 18], "actress": 12, "prefix": [12, 29], "state": [12, 18, 19, 25, 28], "liter": 12, "iso": [12, 18, 23, 28], "639": [12, 18, 23, 28], "schema": 12, "boolean": [12, 18, 20, 28], "enabl": [12, 18, 29], "substr": 12, "against": [12, 23, 26], "alias": 12, "jung": 12, "jungl": 12, "ho": 12, "kang": 12, "higher": [12, 18, 19, 28, 29], "chanc": 12, "v1": 12, "properli": [13, 14, 18, 19, 25, 28, 29], "right": [13, 14, 18, 19, 25], "research": [13, 17, 32], "tediou": [13, 25], "shift": 13, "oppos": [13, 25, 29], "anywai": [13, 26], "phrase": [13, 18, 23, 26, 27, 29], "barcelona": 13, "guitar": 13, "rio": 13, "janeiro": 13, "trip": 13, "club": [13, 32], "verb": 13, "purchas": 13, "noun": 13, "intent": [13, 32], "price": [13, 20, 25], "offer": [13, 23], "clearli": [13, 25], "aren": 13, "tutori": [13, 20, 32], "certif": 13, "learn": [13, 19, 20, 26, 28, 32], "educ": 13, "fifteen": [13, 26], "twenti": [13, 17, 26], "segment": [13, 23], "target": [13, 28], "shouldn": [13, 14], "difficult": 13, "commerc": [13, 26], "focu": [13, 16, 32], "cheap": 13, "discount": 13, "luxuri": 13, "signifi": 13, "graphic": 13, "design": [13, 17, 32], "career": [13, 17], "vacanc": 13, "kw_gener": [13, 20, 29, 32], "possibl": [13, 14, 17, 18, 26, 32], "upload": [13, 18, 19, 23, 28], "kw_df": 13, "criterion": 13, "label": 13, "sem_campaign": 13, "625": [13, 16], "626": 13, "627": 13, "628": 13, "629": 13, "630": 13, "bottom": [13, 26, 32], "kw_broad": 13, "tutor": 13, "kw_exact": 13, "match_typ": 13, "capitalize_adgroup": [13, 29], "order_matt": 13, "frame": 13, "relev": [13, 18, 23, 24, 28], "final": [13, 19, 25, 28, 29], "keywords_df": 13, "tail": 13, "57": [13, 17, 19], "58": [13, 14, 17], "59": 13, "retain": [13, 25], "integr": [13, 32], "kw_modifi": 13, "kw_neg_broad": 13, "kw_neg_exact": 13, "kw_neg_phras": 13, "kw_phrase": 13, "event": [14, 18, 19, 25, 28], "complex": [14, 23], "ourselv": [14, 26], "pageview": [14, 26], "mai": [14, 17, 18, 20, 23, 26, 28], "session": [14, 18, 23], "characterisit": 14, "usuali": 14, "cater": 14, "rapid": 14, "tl": 14, "dr": 14, "access_log": 14, "log_error": 14, "logs_df": 14, "try": [14, 17, 18, 20, 26, 28, 32], "certainli": 14, "conform": 14, "weren": 14, "went": 14, "wrong": [14, 17], "fix": [14, 20, 29], "temporari": 14, "debug": [14, 18], "howev": [14, 18, 23, 26, 28], "popular": [14, 23, 28, 32], "singl": [14, 17, 18, 20, 23], "distinguish": [14, 20], "client": 14, "k": [14, 26], "extend": [14, 23], "effect": [14, 23, 25], "importantli": [14, 25, 32], "datetim": [14, 18, 19, 28, 29], "date": [14, 17, 18, 19, 20, 23, 28, 29, 32], "categor": [14, 25], "storag": [14, 19], "to_datetim": 14, "hostnam": [14, 16, 25], "ip": [14, 16, 18, 20, 29], "address": [14, 16, 20, 29], "reverse_dns_lookup": [14, 16, 29], "resourc": [14, 18, 20, 23, 28, 32], "url_to_df": [14, 19, 25, 29, 32], "famili": [14, 23], "oper": [14, 18, 19, 23, 28, 29], "system": [14, 25, 29], "bot": [14, 16], "non": [14, 18, 26, 27, 28, 29, 32], "sample_log": 14, "66": [14, 16, 20], "249": [14, 16], "73": 14, "00": [14, 17, 18, 19, 28], "0000": 14, "1095": 14, "mozilla": [14, 20], "linux": [14, 29], "android": [14, 19], "nexu": 14, "5x": 14, "mmb29p": 14, "applewebkit": 14, "537": [14, 17], "36": [14, 17, 20], "khtml": 14, "gecko": 14, "98": 14, "4758": 14, "80": [14, 16, 26], "mobil": 14, "safari": 14, "compat": [14, 23], "googlebot": [14, 16, 17], "109": 14, "237": 14, "103": 14, "118": 14, "39": [14, 16, 17, 19, 20], "env": 14, "404": [14, 20], "209": 14, "x11": 14, "x86_64": 14, "81": 14, "4044": 14, "129": 14, "45": [14, 18], "223": 14, "214": 14, "23": [14, 17, 19, 20, 30], "2240": 14, "window": [14, 20], "nt": [14, 20], "win64": 14, "x64": 14, "4430": 14, "51": [14, 16, 17], "68": [14, 17, 20], "77": [14, 17], "192": 14, "241": 14, "211": [14, 16], "176": 14, "31": [14, 16, 19, 30], "login": [14, 17], "zgrab": 14, "69": [14, 20], "48": [14, 17, 19], "stage": 14, "urlyt": 14, "520": [14, 19], "38": [14, 20], "_dash": 14, "suit": 14, "dash": [14, 29], "dash_html_compon": 14, "v2_0_0m1638886228": 14, "154258": 14, "layout": [14, 28], "2547": 14, "ua_pars": 14, "user_agent_pars": 14, "max_column": 14, "adv_log": 14, "adv_error": 14, "y": [14, 18], "z": [14, 19], "host_df": [14, 16], "1210": 14, "cpu": 14, "745": 14, "sy": 14, "729": 14, "47": 14, "wall": 14, "ip_address": [14, 16, 20], "cum_count": [14, 16], "perc": [14, 16], "cum_perc": [14, 16], "aliaslist": [14, 16], "ipaddrlist": [14, 16], "143": 14, "244": 14, "132": 14, "426": 14, "0701004": 14, "errno": [14, 16], "unknown": [14, 16], "host": [14, 16, 18, 29], "146": [14, 17], "164": 14, "110": 14, "290": [14, 17], "716": 14, "0477209": 14, "117821": 14, "46": [14, 19], "177": 14, "196": 14, "171": 14, "908": 14, "0315945": 14, "149416": 14, "ppp046177196171": 14, "hol": 14, "gr": 14, "addr": [14, 16], "arpa": [14, 16], "185": [14, 16], "173": 14, "83": 14, "182": 14, "1090": 14, "029949": 14, "179365": 14, "152": 14, "226": 14, "1261": 14, "0281389": 14, "207504": 14, "94": 14, "174": 14, "154": 14, "1415": 14, "0253415": 14, "232845": 14, "89": 14, "44": [14, 17], "1545": 14, "0213921": 14, "254237": 14, "ppp089047044105": 14, "92": 14, "119": 14, "1664": 14, "019582": 14, "273819": 14, "234": 14, "113": 14, "1777": 14, "0185947": 14, "292414": 14, "217": 14, "1858": 14, "0133289": 14, "305743": 14, "d9646265": 14, "ziggozakelijk": 14, "nl": 14, "163": 14, "243": [14, 16], "79": [14, 17], "1937": 14, "0129998": 14, "318743": 14, "135": 14, "2014": [14, 19], "0126707": 14, "331414": 14, "194": [14, 16], "179": 14, "60": [14, 16, 17], "2074": 14, "00987329": 14, "341287": 14, "vmi660635": 14, "contaboserv": 14, "net": [14, 19], "137": 14, "2132": 14, "00954418": 14, "350831": 14, "70": [14, 20], "2190": 14, "360375": 14, "tor": 14, "anonym": 14, "appliedprivaci": 14, "adress": [14, 16], "ip_host_dict": 14, "request_url_df": 14, "add_prefix": 14, "request_": 14, "request_url": 14, "request_schem": 14, "request_netloc": 14, "request_path": 14, "request_queri": 14, "request_frag": 14, "request_hostnam": 14, "request_port": 14, "request_dir_1": 14, "request_dir_2": 14, "request_dir_3": 14, "request_dir_4": 14, "request_dir_5": 14, "request_dir_6": 14, "request_dir_7": 14, "request_dir_8": 14, "request_dir_9": 14, "request_dir_10": 14, "request_dir_11": 14, "request_dir_12": 14, "request_dir_13": 14, "request_last_dir": 14, "request_query_index": 14, "request_query_": 14, "request_query_xdebug_session_start": 14, "request_query_funct": 14, "request_query_var": 14, "request_query_fil": 14, "request_query_url": 14, "request_query_a": 14, "request_query_cont": 14, "request_query_wt": 14, "request_query_act": 14, "request_query_usernam": 14, "request_query_psd": 14, "request_query_dn": 14, "request_query_step": 14, "request_query_cmd": 14, "request_query_lang": 14, "request_query_opt": 14, "request_query_folderid": 14, "request_query_input_fil": 14, "request_query_currentset": 14, "htm": 14, "request_query_typ": 14, "request_query_next_fil": 14, "request_query_curpath": 14, "request_query_pag": 14, "request_query_id": 14, "request_query_img": 14, "request_query_panel": 14, "request_query_todo": 14, "request_query_cod": 14, "request_query_ref": 14, "request_query_scopenam": 14, "request_query_op": 14, "request_query_control": 14, "request_query_q": 14, "request_query_sb_categori": 14, "request_query_email": 14, "request_query_nam": 14, "request_query_abspath": 14, "request_query_fn": 14, "request_query_thumb": 14, "request_query_nocontinu": 14, "request_query_filepath": 14, "request_query_file_link": 14, "request_query_mypath": 14, "request_query_adapt": 14, "source_fil": 14, "request_query_aam": 14, "request_query_cpabc_calendar_upd": 14, "request_query_term": 14, "request_query_itemid": 14, "request_query_search_kei": 14, "request_query_short": 14, "request_query_titl": 14, "request_query_format": 14, "request_query_findcli": 14, "request_query_v": 14, "request_query_target": 14, "request_query__": 14, "request_query_albid": 14, "request_query_p": 14, "request_query_path": 14, "request_query_mod": 14, "request_query_libpath": 14, "request_query_srt": 14, "request_query_redirect": 14, "request_query_ord": 14, "request_query_item": 14, "request_query_gid": 14, "request_query_rid": 14, "request_query_servic": 14, "request_query_ag": 14, "request_query_typeid": 14, "request_query_dir": 14, "request_query_stockcodeintern": 14, "request_query_sit": 14, "request_query_posit": 14, "request_query_filenam": 14, "referer_url_df": 14, "referer_": 14, "referer_url": 14, "referer_schem": 14, "referer_netloc": 14, "referer_path": 14, "referer_queri": 14, "referer_frag": 14, "referer_hostnam": 14, "referer_port": 14, "referer_dir_1": 14, "referer_dir_2": 14, "referer_dir_3": 14, "referer_last_dir": 14, "ua_df": 14, "json_norm": [14, 29], "ua": 14, "ua_": 14, "ua_str": 14, "ua_famili": 14, "ua_major": 14, "ua_minor": 14, "ua_patch": 14, "ua_o": 14, "major": [14, 17, 19, 23, 32], "minor": [14, 29], "patch": 14, "patch_minor": 14, "ua_devic": 14, "smartphon": [14, 19], "desktop": 14, "concat": [14, 20, 29], "axi": 14, "to_parquet": 14, "adv_logs_fin": 14, "doen": 14, "load": [14, 20, 22, 29], "satisfi": 14, "top_bot": 14, "499": 14, "petalbot": 14, "ahrefsbot": 14, "42": 14, "yandexbot": 14, "linkedinbot": [14, 17], "baiduspid": [14, 17], "dotbot": 14, "twitterbot": [14, 17], "bingbot": [14, 17], "mj12bot": 14, "java": 14, "nutch": 14, "masscan": 14, "facebookbot": 14, "happi": [14, 23], "By": [14, 18, 20, 26, 28], "destin": [14, 25], "stdout": 14, "review": [14, 18, 19, 28], "altogeth": 14, "chose": 14, "crawllogs_to_df": [14, 29], "open": [14, 17, 19, 20, 29], "core": 14, "scraper": 14, "handler": 14, "method_to": 14, "redirect_to": 14, "method_from": 14, "redirect_from": 14, "blocked_url": 14, "logs_file_path": 14, "itself": [14, 20, 25, 26], "und": 14, "crawl_logs_to_df": 14, "crawl_logs_df": 14, "conformig": 14, "chosen": 14, "log_field": 14, "must": [14, 18, 23, 26, 28], "reader": 14, "latin": [14, 28], "collect": [15, 17, 18, 23, 28, 29], "regex_raw": 15, "hashtag_raw": 15, "mention_raw": 15, "raw": 15, "share": [15, 20, 26], "compil": 15, "readabl": [15, 17, 20, 32], "annot": 15, "v11": 15, "cookbook": 15, "2nd": 15, "ed": 15, "o": 15, "reilli": 15, "verifi": [16, 19], "pipelin": [16, 32], "pointer": 16, "comand": 16, "91": 16, "74": 16, "96": 16, "375": 16, "mail": 16, "garda": 16, "ir": 16, "875": 16, "shatel": 16, "cumul": [16, 26], "percentag": [16, 26, 29], "attent": 16, "max_work": [16, 19, 29], "equival": [16, 20], "82": [16, 20], "worker": [16, 19], "multi": [16, 18], "though": [17, 18, 20, 23, 26, 28], "tini": 17, "potent": 17, "instruct": [17, 18, 28], "suppos": [17, 25], "mistak": 17, "ideal": [17, 25, 26, 32], "robotstxt_to_df": [17, 29], "amazon": [17, 19, 23], "etag": [17, 19, 29], "robotstxt_last_modifi": [17, 29], "robotstxt_url": 17, "download_d": [17, 19, 29], "a850165d925db701988daf7ead7492d3": 17, "200689": 17, "disallow": [17, 20], "exec": 17, "obido": 17, "style": [17, 20, 29], "flex": 17, "hp": 17, "mystuff": 17, "147": 17, "gp": 17, "profil": [17, 23], "148": 17, "149": 17, "etaospid": 17, "delai": 17, "ey": 17, "robots_url": 17, "googtwfb": 17, "groupbi": 17, "541": 17, "108": 17, "289": 17, "07": [17, 19, 30], "52": [17, 19], "375724": 17, "howsearchwork": 17, "comment": [17, 20, 28, 29, 32], "nat": [17, 19], "461815": 17, "291": 17, "292": [17, 19], "_escaped_fragment_": 17, "293": 17, "lang": [17, 23], "397": 17, "474456": 17, "398": 17, "prohibit": 17, "unless": [17, 26], "permiss": 17, "399": 17, "conduct": 17, "purpos": 17, "401": 17, "app": [17, 18, 23, 28, 32], "site_scraping_tos_term": 17, "php": 17, "robotstxt_test": [17, 29], "owner": [17, 18, 23, 28], "realiti": 17, "appli": [17, 18, 19, 20], "care": 17, "fb_robot": 17, "951053": 17, "536": 17, "ajax": 17, "pagelet": 17, "pagepostssectionpagelet": 17, "538": [17, 32], "safetycheck": 17, "539": 17, "540": 17, "fb_userag": 17, "drop_dupl": 17, "tolist": [17, 19], "applebot": 17, "discordbot": 17, "facebookexternalhit": 17, "ia_archiv": 17, "msnbot": 17, "naverbot": 17, "pinterestbot": 17, "seznambot": 17, "slurp": 17, "teoma": 17, "telegrambot": 17, "yandex": 17, "yeti": 17, "quit": [17, 19, 26], "bbc": [17, 19], "urls_to_test": 17, "fb_test": 17, "url_path": 17, "can_fetch": 17, "76": 17, "receiv": [17, 23], "eighti": 17, "denot": 17, "24": [17, 19, 30], "40": [17, 18, 20], "figur": [17, 20, 23, 32], "linkedin": 17, "pinterest": 17, "appl": [17, 26], "clue": 17, "robotx": 17, "robotstxt_test_df": 17, "2020": [17, 19, 20, 30], "09": [17, 19, 20, 30], "702814": 17, "08": [17, 19, 30], "087985": 17, "283": 17, "284": 17, "imgr": 17, "285": 17, "286": 17, "468588": 17, "287": 17, "soon": 17, "lose": 17, "patienc": 17, "robots_output_fil": 17, "robotsfiles_df": 17, "robotstxt_df": 17, "fill": 18, "questionnair": 18, "survei": [18, 30], "serp_": [18, 32], "dimens": [18, 28], "serp_goog": [18, 20, 29, 32], "best": [18, 23, 26], "gl": 18, "ca": [18, 26], "uk": 18, "au": 18, "nz": 18, "ten": [18, 26], "450": 18, "snippet": [18, 20, 28, 29], "querytim": [18, 29], "serp_youtub": [18, 29], "At": [18, 28], "enter": [18, 20], "panel": 18, "remov": [18, 20, 23, 26, 27, 28, 29], "entir": [18, 23], "retriev": [18, 19, 23, 28], "programmat": 18, "free": 18, "pai": 18, "cx": 18, "c2coff": 18, "cr": 18, "daterestrict": 18, "exactterm": 18, "excludeterm": 18, "filetyp": 18, "highrang": 18, "hl": [18, 28], "hq": 18, "imgcolortyp": 18, "imgdominantcolor": 18, "imgsiz": 18, "imgtyp": 18, "linksit": 18, "lowrang": 18, "lr": 18, "num": 18, "orterm": 18, "safe": [18, 23], "searchtyp": 18, "sitesearch": 18, "sitesearchfilt": 18, "sort": [18, 21, 25, 26, 28, 29], "tradit": [18, 28], "disabled0": 18, "tld": [18, 29], "urlth": 18, "geograph": [18, 28], "addressse": 18, "past": [18, 32], "week": [18, 19, 23, 32], "month": [18, 19, 23], "year": [18, 19, 23], "appear": [18, 19, 20, 23, 26, 29], "center": [18, 28], "crowd": 18, "improv": [18, 26, 29], "geoloc": 18, "boost": 18, "whose": [18, 26], "lead": 18, "particularli": [18, 20], "speak": 18, "unit": [18, 19, 23, 28], "rang": [18, 23], "inclus": [18, 28], "explicitli": [18, 23, 25], "internation": 18, "term": [18, 20, 24, 28, 32], "logic": 18, "AND": 18, "black": [18, 20, 26], "grayscal": 18, "color": [18, 20, 25, 26], "mono": 18, "grai": 18, "domin": 18, "brown": 18, "orang": [18, 26], "pink": 18, "purpl": 18, "red": [18, 25], "teal": 18, "huge": 18, "xlarg": 18, "xxlarg": 18, "clipart": 18, "lineart": 18, "photo": [18, 23], "lang_ja": 18, "lang_ar": 18, "lang_bg": 18, "bulgarian": 18, "lang_ca": 18, "lang_c": 18, "czech": 18, "lang_da": 18, "lang_d": 18, "lang_el": 18, "lang_en": 18, "lang_": 18, "lang_et": 18, "estonian": 18, "lang_fi": 18, "lang_fr": 18, "lang_hr": 18, "lang_hu": 18, "lang_id": 18, "lang_i": 18, "iceland": 18, "lang_it": 18, "lang_iw": 18, "lang_ko": 18, "lang_lt": 18, "lithuanian": 18, "lang_lv": 18, "latvian": 18, "lang_nl": 18, "lang_no": 18, "lang_pl": 18, "lang_pt": 18, "lang_ro": 18, "lang_ru": 18, "lang_sk": 18, "slovak": 18, "lang_sl": 18, "slovenian": 18, "lang_sr": 18, "serbian": 18, "lang_sv": 18, "lang_tr": 18, "lang_zh": 18, "cn": 18, "tw": 18, "least": [18, 26, 28], "cc_publicdomain": 18, "cc_attribut": 18, "cc_sharealik": 18, "cc_noncommerci": 18, "cc_nonderiv": 18, "safeti": 18, "safesearch": [18, 28], "unspecifi": 18, "forth": [18, 23, 28], "ever": [18, 26], "serp_df": 18, "usa": 18, "franc": 18, "your_cx": 18, "your_kei": 18, "prouc": 18, "fligt": 18, "ticket": 18, "focus": 18, "flight": [18, 23], "countryuk": 18, "countryau": 18, "channelid": [18, 28], "channeltyp": [18, 28], "eventtyp": [18, 28], "forcontentown": [18, 28], "fordevelop": [18, 28], "formin": [18, 28], "locationradiu": [18, 28], "maxresult": [18, 28], "onbehalfofcontentown": [18, 28], "pagetoken": [18, 28], "publishedaft": [18, 28], "publishedbefor": [18, 28], "regioncod": [18, 28], "relatedtovideoid": [18, 28], "relevancelanguag": [18, 28], "topicid": [18, 28], "videocapt": [18, 28], "videocategoryid": [18, 28], "videodefinit": [18, 28], "videodimens": [18, 28], "videodur": [18, 28], "videoembedd": [18, 28], "videolicens": [18, 28], "videosynd": [18, 28], "videotyp": [18, 28], "loop": [18, 23, 29], "merg": [18, 20, 23, 29], "associ": [18, 26, 28], "boat": [18, 28], "sail": [18, 28], "similarli": [18, 20, 28], "fish": [18, 28], "pipe": [18, 26, 28], "escap": [18, 28], "sent": [18, 23, 28], "7c": [18, 28], "channel": [18, 28, 29, 32], "constrain": [18, 28], "broadcast": [18, 28], "live": [18, 28, 32], "upcom": [18, 28, 32], "intend": [18, 23, 28], "exclus": [18, 28], "partner": [18, 28], "via": [18, 23, 26, 28], "conjunct": [18, 23, 28], "subsequ": [18, 28], "circular": [18, 28], "metadata": [18, 23, 28, 29], "latitud": [18, 23, 28], "longitud": [18, 23, 28], "coordin": [18, 28], "42307": [18, 28], "122": [18, 28], "08427": [18, 28], "distanc": [18, 28], "float": [18, 28], "km": [18, 23, 28], "ft": [18, 28], "mi": [18, 23, 28], "1500m": [18, 28], "5km": [18, 28], "10000ft": [18, 28], "75mi": [18, 28], "larger": [18, 23, 28], "kilomet": [18, 23, 28], "definit": [18, 28], "cm": [18, 28], "act": [18, 28], "behalf": [18, 28], "individu": [18, 28], "chronolog": [18, 28], "rate": [18, 19, 20, 23, 26, 28], "highest": [18, 28], "lowest": [18, 28], "videocount": [18, 28], "descend": [18, 28], "viewcount": [18, 28], "viewer": [18, 28], "ongo": [18, 28], "nextpagetoken": [18, 28, 29], "prevpagetoken": [18, 28], "rfc": [18, 28], "3339": [18, 28], "1970": [18, 28], "01t00": [18, 28], "00z": [18, 19, 28], "3166": [18, 28], "alpha": [18, 28], "zh": [18, 28], "han": [18, 28], "hant": [18, 28], "standard": [18, 20, 23, 25, 28, 32], "moder": [18, 28], "demot": [18, 28], "strict": [18, 28], "freebas": [18, 28], "comma": [18, 23, 26, 27, 28], "playlist": [18, 28, 29], "closedcapt": [18, 28], "hd": [18, 28], "sd": [18, 28], "playback": [18, 28], "720p": [18, 28], "resolut": [18, 28], "1080p": [18, 28], "regardless": [18, 28, 29], "2d": [18, 28], "3d": [18, 28], "durat": [18, 28], "minut": [18, 19, 25, 28], "less": [18, 20, 23, 26, 28], "embed": [18, 23, 28], "embedd": [18, 28], "choos": [18, 20, 28], "attach": [18, 23, 28], "creativ": [18, 28], "creativecommon": [18, 28], "reus": [18, 28], "syndic": [18, 28], "episod": [18, 28], "movi": [18, 19, 23, 28], "set_logging_level": 18, "level_or_nam": 18, "dure": [18, 26], "notset": 18, "warn": 18, "youtube_channel_detail": 18, "channel_id": 18, "assum": [18, 20, 23, 29], "channel_df": 18, "youtube_video_detail": 18, "vid_id": 18, "video_df": 18, "fastest": 19, "easiest": 19, "reveal": 19, "correspond": 19, "publish": [19, 28], "rich": [19, 23], "sitemap_to_df": [19, 20, 29], "loc": 19, "hte": 19, "lastmod": 19, "sitemap_last_modifi": [19, 29], "sitemap_size_mb": [19, 29], "mega": 19, "1mb": 19, "024": [19, 29], "sitmeapindex": 19, "decid": [19, 20, 23], "bbc_sitemap": 19, "archiv": 19, "2009": [19, 20], "090620_as_iraq_explosion_tc2": 19, "e7e15811c65f406f89f89fe10aef29f5": 19, "05": [19, 20, 30], "63124": 19, "461037": 19, "090620_iraq_blast_tc2": 19, "43": 19, "busi": [19, 28], "090622_me_worldbank_tc2": 19, "41": 19, "090624_me_inpictures_brazil_tc2": 19, "090618_tomtest": 19, "090625_sf_tamim_verdict_tc2": 19, "090623_iz_cairo_russia_tc2": 19, "090622_me_egypt_us_tc2": 19, "090624_mz_wimbledon_tc2": 19, "worldnew": 19, "090623_mz_leaders_lifespan_tc2": 19, "49999": 19, "datetime64": 19, "utc": 19, "float64": 19, "set_index": 19, "resampl": 19, "2008": 19, "2287": 19, "47603": 19, "2010": 19, "2011": 19, "2012": 19, "2013": 19, "2015": [19, 21, 23], "2016": [19, 21], "2018": [19, 30], "2019": [19, 30], "freq": 19, "dec": 19, "seem": [19, 20, 26], "compar": [19, 25, 29], "rolling_new": 19, "090628_rn_pakistani_soldiries_ambush": 19, "pakistan": 19, "090421_mqm_speaks_rza": 19, "090723_ae_silwan_tc2": 19, "noticia": 19, "090729_iraquerefenbritsfn": 19, "090623_egitomilitaresfn": 19, "090302_gazaconferenciaml": 19, "090715_hillary_iran_cq": 19, "cultur": 19, "090409_machienhuu_revisit": 19, "090524_paquistaoupdateg": 19, "090629_om_pakistan_report_tc2": 19, "yyyi": [19, 23, 28], "mm": [19, 23, 28], "yymmdd_article_titl": 19, "url_df": 19, "scheme": [19, 25], "netloc": [19, 25], "fragment": [19, 25], "dir_1": [19, 25], "dir_2": [19, 25], "dir_3": [19, 25], "dir_4": 19, "dir_5": 19, "dir_6": 19, "dir_7": 19, "last_dir": [19, 25, 29], "49994": 19, "090831_dalailamataiwan": 19, "49995": 19, "090901_putin_regret_pact": 19, "49996": 19, "090901_tiananmen_movi": 19, "49997": 19, "pictur": [19, 26], "090830_ugc_ddh_sand": 19, "49998": 19, "090901_japecontask": 19, "14022": 19, "10968": 19, "5403": 19, "5068": 19, "mundo": 19, "5065": 19, "3561": 19, "2984": 19, "1677": 19, "turkc": 19, "706": 19, "ukchina": 19, "545": 19, "1506": 19, "2910": 19, "3021": 19, "3250": 19, "2769": 19, "9044": 19, "5050": 19, "4224": 19, "iran": 19, "3682": 19, "2103": 19, "afghanistan": 19, "1959": 19, "1657": 19, "internacion": 19, "1555": 19, "1350": 19, "1293": 19, "india": 19, "1285": 19, "america_latina": 19, "1274": 19, "1204": 19, "cultura_sociedad": 19, "913": 19, "874": 19, "872": 19, "russia": 19, "841": 19, "radio": 19, "769": 19, "scienc": [19, 32], "755": 19, "674": 19, "underscor": 19, "concaten": 19, "seri": [19, 25], "meaning": [19, 26], "explod": 19, "rn": 19, "8808": 19, "tc2": 19, "3153": 19, "1534": 19, "973": 19, "obama": 19, "882": 19, "862": 19, "china": 19, "815": 19, "ir88": 19, "727": 19, "683": 19, "si": 19, "640": 19, "np": [19, 29], "638": 19, "afghan": 19, "632": 19, "ka": 19, "565": 19, "556": 19, "iraq": 19, "554": 19, "547": 19, "nh": 19, "533": 19, "cq": 19, "510": 19, "ra": 19, "491": 19, "familiar": 19, "bug": [19, 29], "nyt_new": 19, "gz": [19, 29], "5085": 19, "news_publ": 19, "publication_nam": 19, "publication_languag": 19, "news_publication_d": 19, "news_titl": 19, "news_keyword": 19, "interact": [19, 23, 29, 32], "ottawa": 19, "ohio": 19, "covid": 19, "york": 19, "27t17": 19, "counti": 19, "exposur": 19, "risk": 19, "tracker": 19, "coronaviru": 19, "ncov": 19, "death": 19, "fatal": 19, "diseas": 19, "promo": 19, "1585539358901": 19, "articlelarg": 19, "v274": 19, "0cff645fbb74c21791568b78a888967d": 19, "0774069": 19, "744247": 19, "hopewel": 19, "virginia": 19, "1585539536519": 19, "v271": 19, "butt": 19, "nebraska": 19, "1585539237156": 19, "v281": 19, "stearn": 19, "minnesota": 19, "1585539172701": 19, "v282": 19, "benton": 19, "iowa": 19, "1585539039190": 19, "v286": 19, "5080": 19, "hodgeman": 19, "kansa": 19, "1585539054298": 19, "v285": 19, "f53301c8286f9bf59ef297f0232dcfc1": 19, "914107": 19, "995323": 19, "5081": 19, "miller": 19, "georgia": 19, "1585538956622": 19, "v290": 19, "5082": 19, "elect": 19, "west": 19, "hous": 19, "district": 19, "03t17": 19, "congression": 19, "david": 19, "mckinlei": 19, "natali": 19, "cline": 19, "presidenti": 19, "eln": 19, "race": [19, 28], "1winner": 19, "mckinleyd": 19, "5083": 19, "senat": 19, "susan": 19, "collin": 19, "defeat": 19, "sara": 19, "gideon": 19, "senatewinn": 19, "collinss": 19, "5084": 19, "randolph": 19, "missouri": 19, "1585539206866": 19, "wired_video": 19, "wire": 19, "2955": 19, "video_thumbnail_loc": 19, "video_titl": 19, "video_descript": 19, "video_content_loc": 19, "video_dur": 19, "video_publication_d": 19, "video_expiration_d": 19, "autocomplet": [19, 32], "inverview": 19, "owen": 19, "wilson": 19, "answer": 19, "dwgyu36up6iuz": 19, "cloudfront": 19, "heru80fdn": 19, "c_fill": 19, "d_placeholder_thescen": 19, "fl_progress": 19, "g_face": 19, "h_180": 19, "q_80": 19, "w_320": 19, "v1644595412": 19, "wired_autocomplet": 19, "interview": 19, "internet": 19, "himself": [19, 26], "nose": 19, "ben": 19, "stiller": 19, "anderson": 19, "skateboard": 19, "dp8hsntg6do36": 19, "62067f085577c277dd9acf42": 19, "39687acb": 19, "505b": 19, "4c69": 19, "94f1": 19, "afaa7cb5e636low": 19, "mp4": 19, "645": 19, "11t17": 19, "90b11f47f8b2ab57cb180cbd3c6f06f9": 19, "86199": 19, "841851": 19, "samsung": 19, "s22": 19, "v1644418652": 19, "wired_wir": 19, "ultra": 19, "julian": 19, "chokkattu": 19, "editor": 19, "walk": 19, "6203cd7b5577c23d19622259": 19, "fe546b9b": 19, "a320": 19, "4883": 19, "9cbd": 19, "0d790f23c36dlow": 19, "184": 19, "10t17": 19, "galaxi": 19, "v1644381627": 19, "wired_first": 19, "debut": 19, "tablet": 19, "newest": [19, 28], "620345a15577c23d46622256": 19, "d74930cf": 19, "11e1": 19, "466e": 19, "b023": 19, "1d9b91664204low": 19, "373": 19, "09t15": 19, "reinvent": 19, "v1642801328": 19, "wired_reinv": 19, "lab": 19, "aw": 19, "seattl": 19, "seahawk": 19, "win": [19, 26], "teach": 19, "swami": 19, "sivasubramanian": 19, "vp": 19, "ai": 19, "team": 19, "nfl": 19, "captur": [19, 32], "strateg": [19, 32], "619bd9be1d75db41adee6b58": 19, "d4889b15": 19, "4f34": 19, "41b0": 19, "b935": 19, "0c79465a9793low": 19, "09t13": 19, "seth": 19, "rogen": 19, "v1644335726": 19, "wired_seth": 19, "pam": 19, "amp": 19, "tommi": 19, "potteri": 19, "celebr": 19, "christma": 19, "duti": 19, "premier": 19, "februari": [19, 28], "hulu": 19, "march": 19, "6201430a1d75db06ae1f62e8": 19, "488ed635": 19, "91d0": 19, "4281": 19, "9e64": 19, "34be9bf74f00low": 19, "635": 19, "08t17": 19, "2950": 19, "genr": 19, "2951": 19, "tv": [19, 28], "2952": 19, "2953": 19, "promot": 19, "2954": 19, "thread": [19, 28, 29], "faster": [19, 29], "attack": 19, "sitemap_df": 19, "changefreq": 19, "prioriti": 19, "customiz": 20, "configur": [20, 28], "flexibl": [20, 32], "simplest": [20, 25], "reachabl": 20, "my_output_fil": 20, "affect": 20, "indepent": 20, "overwrit": [20, 29], "otherwis": [20, 23, 25, 26], "crash": 20, "sitename_crawl_yyyy_mm_dd": 20, "remark": 20, "rquest": 20, "card": [20, 23, 29], "jsonld_1_": 20, "item_a": 20, "item_b": 20, "whichev": [20, 25, 29, 32], "links_url": [20, 29], "links_text": [20, 29], "links_nofollow": [20, 29], "nofllow": 20, "tell": 20, "nav_links_url": 20, "header_links_url": 20, "footer_links_url": 20, "body_text": [20, 29], "p": [20, 29], "span": [20, 29], "li": [20, 29], "amount": [20, 25, 26], "took": 20, "download_timout": 20, "sec": 20, "crossorigin": [20, 29], "ismap": [20, 29], "longdesc": [20, 29], "referrerpolici": [20, 29], "srcset": [20, 29], "usemap": [20, 29], "global": [20, 23, 29], "draggabl": [20, 29], "third": [20, 23, 26], "truncat": 20, "site_crawl": 20, "links_href": 20, "leas": 20, "blob": 20, "resp_headers_access": 20, "request_headers_cooki": 20, "camp": 20, "readm": 20, "kw_": [20, 29, 32], "wed": 20, "720a8581": 20, "501e": 20, "0043": 20, "01a2": 20, "2e77d2": 20, "unlock": 20, "blockblob": 20, "web00007c": 20, "includesubdo": 20, "3600": 20, "ht": 20, "596daca7dbaa7e9": 20, "bud": 20, "02d86a3cea00007e9edb0cf2000000": 20, "xm": 20, "__cfduid": 20, "d76b68d148ddec1efd004": 20, "202": 20, "abil": [20, 28, 29], "4f7bea3b": 20, "701e": 20, "0039": 20, "3f44": 20, "2f1d9f": 20, "web00007h": 20, "596daca9bcab7e9": 20, "02d86a3e0e00007e9edb0d72000000": 20, "98b729fa": 20, "e01": 20, "00bf": 20, "24c3": 20, "2e494d": 20, "596daca9bf26d423": 20, "02d86a3e150000d423322742000000": 20, "submodul": [20, 29, 30, 31], "advertoo": 20, "7a28ef3b": 20, "801e": 20, "00c2": 20, "2ed585": 20, "web000079": 20, "596daca9bddb7ec2": 20, "02d86a3e1300007ec2a808a2000000": 20, "copyright": [20, 21], "eli": 20, "_static": 20, "75911c9e": 20, "201e": 20, "00e6": 20, "34c3": 20, "2e4ccb": 20, "web00007g": 20, "596daca9b91fd437": 20, "02d86a3e140000d437b81532000000": 20, "url_build": 20, "pyt": 20, "d99f2368": 20, "c01e": 20, "006f": 20, "18c3": 20, "2ef5ef": 20, "web00007a": 20, "596dacbbb8afd437": 20, "02d86a494f0000d437b828b2000000": 20, "pyth": 20, "85855c48": 20, "00ce": 20, "13c3": 20, "2e3b74": 20, "596dacbd980bd423": 20, "02d86a4a7f0000d423323b42000000": 20, "ad_": [20, 32], "b0aef497": 20, "004a": 20, "1647": 20, "2f6d5c": 20, "web00007k": 20, "596dacbd980cd423": 20, "02d86a4a7f0000d423209db2000000": 20, "9dfdd38a": 20, "101e": 20, "00a1": 20, "7ec3": 20, "2e93a0": 20, "596dacbd99847ec2": 20, "02d86a4a7f00007ec2a811f2000000": 20, "emo": 20, "2ad504a1": 20, "000b": 20, "03c3": 20, "2e454f": 20, "596dacbd9fb97e9": 20, "02d86a4a7f00007e9edb13a2000000": 20, "ran": 20, "got": 20, "richer": 20, "perspect": [20, 25, 26], "bounc": [20, 26], "traffic": [20, 23, 24], "export": 20, "addition": [20, 23], "pretti": 20, "name_1": 20, "selector_1": 20, "name_2": 20, "selector_2": 20, "reli": 20, "slectorgadget": 20, "selecotr": 20, "tricki": 20, "documentaion": 20, "w3c": 20, "decrib": 20, "sidebar": [20, 29], "toctre": 20, "l1": 20, "attr": 20, "sidebar_link": 20, "sidebar_links_url": 20, "shoe": [20, 26], "model_a": 20, "model_b": 20, "unexpect": 20, "rememb": 20, "granular": 20, "potenti": [20, 23], "region": [20, 23, 28], "regard": [20, 26], "further": [20, 25, 26, 32], "simultan": 20, "lower": 20, "pressur": 20, "deep": 20, "fraction": 20, "strongli": [20, 23], "yourself": [20, 26], "confid": 20, "fine": 20, "explan": 20, "outpuf_fil": 20, "attempt": 20, "product2": 20, "anotherexampl": 20, "anotherexmapl": 20, "author_url": 20, "contributornameid": 20, "spaci": [21, 29], "mine": [21, 26, 27, 28, 32], "footnot": 21, "explosionai": 21, "ug": 21, "haftungsbeschr\u00e4nkt": 21, "gmbh": 21, "matthew": 21, "honnib": 21, "complic": 23, "unnest": 23, "nest": [23, 28], "influenti": 23, "credibl": 23, "signatur": 23, "dashboard": [23, 32], "auth_param": 23, "app_kei": [23, 29], "your_app_kei": 23, "app_secret": [23, 29], "your_app_secret": 23, "set_auth_param": 23, "oauth_token": [23, 29], "oauth_token_secret": [23, 29], "your_oauth_token": 23, "your_oauth_token_secret": 23, "python_tweet": 23, "tweet_mod": 23, "140": 23, "prepend": [23, 25], "tweet_": 23, "user_": 23, "func": 23, "get_application_rate_limit_statu": 23, "consumed_onli": 23, "rate_limit_statu": 23, "get_available_trend": 23, "trend": [23, 26, 32], "get_favorit": 23, "user_id": 23, "screen_nam": 23, "since_id": 23, "max_id": 23, "include_ent": 23, "whom": [23, 26], "screen": 23, "greater": 23, "forc": 23, "oldest": 23, "older": 23, "node": 23, "omit": 23, "engag": 23, "get_followers_id": 23, "cursor": 23, "stringify_id": 23, "semi": 23, "caus": [23, 29], "broken": 23, "5000": 23, "guarante": 23, "suspend": 23, "previous_cursor": 23, "next_cursor": 23, "environ": 23, "get_followers_list": 23, "skip_statu": 23, "include_user_ent": 23, "status": 23, "get_friends_id": 23, "friend": 23, "get_friends_list": 23, "get_home_timelin": 23, "trim_us": 23, "exclude_repli": 23, "retweet": [23, 26], "timelin": 23, "numer": [23, 28], "prevent": [23, 29], "repli": [23, 28], "home_timelin": 23, "get_list_memb": 23, "list_id": 23, "owner_screen_nam": 23, "owner_id": 23, "member": 23, "get_list_membership": 23, "filter_to_owned_list": 23, "disambigu": 23, "begin": [23, 27, 29], "membership": 23, "get_list_status": 23, "include_rt": 23, "ON": 23, "varieti": 23, "discreet": 23, "user_ment": 23, "nativ": 23, "stream": [23, 32], "ident": 23, "represent": 23, "get_list_subscrib": 23, "subscrib": [23, 28], "opt": 23, "futur": [23, 28], "truestatus": 23, "get_list_subscript": 23, "obtain": [23, 25, 26], "subscript": [23, 28], "get_mentions_timelin": 23, "mentions_timelin": 23, "get_place_trend": [23, 29], "woeid": 23, "yahoo": 23, "earth": 23, "get_retweeters_id": 23, "get_retweet": 23, "get_supported_languag": 23, "get_user_timelin": 23, "strip": [23, 26, 27], "toward": [23, 26], "maxim": 23, "slice": 23, "user_timelin": 23, "lookup_statu": 23, "include_ext_alt_text": 23, "include_card_uri": 23, "hydrat": 23, "cannot": [23, 26], "null": 23, "pair": 23, "ext_alt_text": 23, "card_uri": 23, "lookup_us": 23, "encourag": 23, "make_datafram": 23, "retweeted_of_m": 23, "retweets_of_m": 23, "geocod": 23, "result_typ": 23, "lat": 23, "lon": 23, "dist": 23, "radiu": 23, "preferenti": 23, "geotag": 23, "mile": 23, "directli": 23, "distinct": 23, "detect": 23, "effort": 23, "ja": 23, "prefer": 23, "mix": [23, 25, 28], "dd": 23, "hate": 23, "beer": 23, "root": 23, "haiku": 23, "interior": 23, "nasa": 23, "astronaut": 23, "puppi": 23, "native_video": 23, "amplifi": 23, "periscop": 23, "vine": 23, "instagram": 23, "twimg": 23, "pic": 23, "hilari": 23, "anywher": [23, 26], "superhero": 23, "scari": 23, "attitud": 23, "search_us": 23, "access_token": 23, "token_typ": 23, "bearer": 23, "oauth_vers": 23, "api_vers": 23, "client_arg": 23, "auth_endpoint": 23, "twython": [23, 29], "starting_out": 23, "show_list": 23, "show_owned_list": 23, "ownership": 23, "url_utm_ga": [24, 29], "utm_sourc": 24, "utm_medium": 24, "utm_campaign": 24, "utm_cont": 24, "utm_term": 24, "utm": [24, 29], "banner": 24, "summer_promo": 24, "20pct_off": 24, "differenti": 24, "728x90": 24, "mpu": 24, "square_bann": 24, "bid": 24, "mysit": 24, "THE": 24, "2anam": 24, "5e": 24, "fairli": [25, 32], "situat": 25, "enhanc": 25, "path_1": 25, "path_2": 25, "frag_1": 25, "frag_2": 25, "path_3": 25, "sm": 25, "query_color": 25, "query_pric": 25, "query_s": 25, "elabor": 25, "decod": 25, "self": 25, "explanatori": 25, "blog": 25, "previou": [25, 28, 29], "unalign": 25, "popul": 25, "na": [25, 29], "hash": 25, "query_": 25, "colliss": 25, "unlik": 25, "delimit": [25, 27], "unusu": 25, "product1": 25, "sens": [25, 26], "renam": 25, "inconsist": 25, "topic1": 25, "topic2": 25, "artilc": 25, "yout": 25, "distort": 25, "role": [25, 28], "topic_1": 25, "topic_2": 25, "align": 25, "ouput_fil": 25, "urldf": 25, "corpu": 26, "accomplish": [26, 32], "word_frequ": [26, 27, 29, 32], "sequenc": [26, 32], "dot": [26, 27], "quotat": 26, "whatev": [26, 32], "sale": 26, "quantifi": 26, "bag": 26, "half": 26, "revenu": 26, "million": 26, "hidden": 26, "ppc": 26, "num_list": [26, 29], "experi": 26, "rm_word": 26, "ignor": 26, "possibli": 26, "extra_info": 26, "abs_freq": [26, 29], "wtd_freq": [26, 29], "rel_valu": [26, 29], "essenti": [26, 27, 32], "multipli": 26, "abs_perc": 26, "abs_perc_cum": 26, "wtd_freq_perc": 26, "wtd_freq_perc_cum": 26, "afterward": 26, "alon": 26, "among": 26, "amongst": 26, "anyhow": 26, "anyon": 26, "becam": 26, "beforehand": 26, "behind": 26, "besid": 26, "beyond": 26, "eight": 26, "eleven": 26, "elsewher": 26, "everywher": 26, "fifti": 26, "former": 26, "formerli": 26, "forti": [26, 32], "henc": 26, "her": 26, "hereaft": 26, "herebi": 26, "herein": 26, "hereupon": 26, "herself": 26, "him": 26, "inde": 26, "latter": 26, "latterli": 26, "me": [26, 27], "meanwhil": 26, "moreov": 26, "move": 26, "myself": 26, "neither": 26, "nevertheless": 26, "nine": 26, "nobodi": 26, "noon": 26, "nor": 26, "nowher": 26, "often": 26, "onto": 26, "perhap": 26, "rather": 26, "seriou": 26, "sixti": 26, "somehow": 26, "someon": 26, "somewher": [26, 32], "themselv": [26, 29], "thenc": 26, "thereaft": 26, "therebi": [26, 28], "therein": 26, "thereupon": 26, "throughout": 26, "thru": 26, "twelv": 26, "upon": 26, "whenc": 26, "whenev": 26, "whereaft": 26, "wherea": 26, "wherebi": 26, "wherein": 26, "whereupon": 26, "wherev": [26, 29], "whither": 26, "whoever": 26, "yourselv": 26, "blown": 26, "ngram": 26, "metric": 26, "abs_wtd_df": 26, "banana": 26, "kiwi": 26, "mango": 26, "250": 26, "300": 26, "beat": 26, "text_list2": 26, "222222": 26, "333333": 26, "111111": 26, "266667": 26, "600000": 26, "666667": 26, "200000": 26, "800000": 26, "888889": 26, "133333": 26, "933333": 26, "000000": 26, "066667": 26, "word_token": [27, 29], "trim": 27, "quot": [27, 29], "parenthes": 27, "trail": [27, 29], "insid": 27, "activities_list": 28, "criteria": 28, "child": 28, "quota": 28, "cost": 28, "contentdetail": 28, "uniqu": [28, 29], "deprec": [28, 29], "unsign": 28, "earliest": 28, "8601": 28, "ddthh": 28, "ss": 28, "sz": 28, "captions_list": 28, "videoid": 28, "channel_sections_list": 28, "channelsect": 28, "i18nlanguag": 28, "channels_list": 28, "categoryid": 28, "forusernam": 28, "managedbym": 28, "mysubscrib": 28, "auditdetail": 28, "brandingset": 28, "contentownerdetail": 28, "invideopromot": 28, "topicdetail": 28, "comment_threads_list": 28, "allthreadsrelatedtochannelid": 28, "moderationstatu": 28, "searchterm": 28, "textformat": 28, "commentthread": 28, "heldforreview": 28, "await": 28, "likelyspam": 28, "classifi": 28, "spam": 28, "plaintext": 28, "plain": 28, "comments_list": 28, "parentid": 28, "guide_categories_list": [28, 29], "guidecategori": 28, "i18n_languages_list": 28, "en_u": 28, "i18n_regions_list": 28, "i18nregion": 28, "playlist_items_list": 28, "playlistid": 28, "playlistitem": 28, "resourceid": 28, "playlists_list": 28, "onbehalfofcontentownerchannel": 28, "timecr": 28, "player": 28, "action": [28, 29], "curat": 28, "music": 28, "04rlf": 28, "02mscn": 28, "christian": 28, "0ggq0m": 28, "classic": 28, "01lyv": 28, "02lkt": 28, "electron": 28, "0glt670": 28, "hip": 28, "hop": 28, "05rwpb": 28, "03_d0": 28, "jazz": 28, "028sqc": 28, "asia": 28, "0g293": 28, "america": 28, "064t9": 28, "pop": 28, "06cqb": 28, "regga": 28, "06j6l": 28, "rhythm": 28, "06by7": 28, "rock": 28, "0gywn": 28, "soul": 28, "game": 28, "0bzvm2": 28, "025zzc": 28, "02ntfj": 28, "adventur": 28, "0b1vjn": 28, "casual": 28, "02hygl": 28, "04q1x3q": 28, "puzzl": 28, "01sjng": 28, "0403l3g": 28, "021bp2": 28, "simul": 28, "022dc6": 28, "03hf_rm": 28, "06ntj": 28, "0jm_": 28, "american": 28, "018jz": 28, "basebal": 28, "018w8": 28, "01cgz": 28, "09xp_": 28, "cricket": 28, "02vx4": 28, "037hz": 28, "golf": 28, "03tmr": 28, "hockei": 28, "01h7lh": 28, "martial": 28, "0410tth": 28, "motorsport": 28, "07bs0": 28, "tenni": 28, "07_53": 28, "volleybal": 28, "entertain": 28, "02jjt": 28, "09kqc": 28, "humor": 28, "02vxn": 28, "05qjc": 28, "066wd": 28, "profession": 28, "wrestl": 28, "0f2f9": 28, "lifestyl": 28, "019_rr": 28, "032tl": 28, "fashion": 28, "027x7n": 28, "02wbm": 28, "03glg": 28, "hobbi": 28, "068hy": 28, "pet": 28, "041xxh": 28, "physic": 28, "attract": 28, "beauti": 28, "07c1v": 28, "07bxq": 28, "tourism": 28, "07yv9": 28, "vehicl": 28, "societi": 28, "098wr": 28, "09s1f": 28, "0kt51": 28, "01h6rj": 28, "militari": 28, "05qt0": 28, "06bvp": 28, "religion": 28, "01k8wb": 28, "channelplaylistvideo": 28, "subscriptions_list": 28, "myrecentsubscrib": 28, "forchannelid": 28, "subscribersnippet": 28, "subscription_order_relev": 28, "unread": 28, "video_categories_list": 28, "videocategori": 28, "videos_list": 28, "chart": 28, "myrat": 28, "maxheight": 28, "maxwidth": 28, "filedetail": 28, "livestreamingdetail": 28, "processingdetail": 28, "recordingdetail": 28, "mostpopular": 28, "dislik": 28, "embedhtml": 28, "emb": 28, "appropri": 28, "violat": 28, "8192": 28, "narrow": 28, "subpackag": [29, 30, 31], "log_date_format": 29, "relatedsit": 29, "v15": 29, "contribut": 29, "danielp77": 29, "offlin": 29, "preserv": 29, "autothrottl": 29, "minim": 29, "fillna": 29, "ffill": 29, "andypayn": 29, "newlin": 29, "clarifi": 29, "thebe": 29, "sphinx": 29, "deprac": 29, "skip_url_param": 29, "versatil": 29, "bad": 29, "timeout": 29, "sitemapindex": 29, "mb": 29, "024x1": 29, "anymor": 29, "jsonld_error": 29, "resp_meta_": 29, "preced": 29, "url_redirected_to": 29, "links_frag": 29, "invalid": 29, "stricter": 29, "unifi": 29, "element_1": 29, "element_2": 29, "drop": 29, "slight": 29, "relayout": 29, "clarif": 29, "robotstxt": 29, "cse": 29, "returnd": 29, "sitemap_download": 29, "variabl": 29, "expand": 29, "pagemap": 29, "df": 29, "top_emoji_categori": 29, "top_emoji_sub_categori": 29, "db": 29, "simpler": 29, "__init__": 29, "ve": 29, "punctuat": 29, "pagin": [29, 32], "reflect": 29, "lenght": 29, "rewrit": 29, "_dict_product": 29, "msg": 29, "implement": 29, "repons": 29, "town": 29, "wrap": 29, "pand": 29, "cheat": 29, "sheet": [29, 32], "coverag": 29, "releas": 29, "pypi": 29, "placehold": [29, 32], "feedback": 30, "pip3": 30, "unreleas": 30, "2023": 30, "announc": 32, "scientist": 32, "manipul": 32, "visual": 32, "sophist": 32, "algorithm": 32, "cool": 32, "spent": 32, "wrangl": 32, "stitch": 32, "124": 32, "hopefulli": 32, "pick": 32, "excel": 32, "formula": 32, "unix": 32, "doug": 32, "mcilroi": 32, "univers": 32, "aim": 32, "unrel": 32, "workflow": 32, "practition": 32, "plotli": 32, "librari": 32, "tabular": 32, "kept": 32, "modular": 32, "coder": 32, "promis": 32, "deliveri": 32, "didn": 32, "headlin": 32, "datacamp": 32, "semrush": 32, "comprehens": 32, "render": 32, "creation": 32, "outreach": 32, "built": 32, "megabyt": 32, "monitor": 32, "parser": 32, "notebook": 32, "tackl": 32, "bloomberg": 32, "click": 32, "divers": 32, "3k": 32, "conveni": 32, "introductori": 32, "clean": 32, "131k": 32, "european": 32, "url_": 32, "emoji_": 32, "_to_df": 32}, "objects": {"": [[0, 0, 0, "-", "advertools"]], "advertools": [[1, 0, 0, "-", "ad_create"], [2, 0, 0, "-", "ad_from_string"], [3, 0, 0, "-", "cli"], [5, 0, 0, "-", "code_recipes"], [7, 0, 0, "-", "crawlytics"], [8, 0, 0, "-", "emoji"], [9, 0, 0, "-", "extract"], [10, 0, 0, "-", "header_spider"], [11, 0, 0, "-", "image_spider"], [12, 0, 0, "-", "knowledge_graph"], [13, 0, 0, "-", "kw_generate"], [14, 0, 0, "-", "logs"], [15, 0, 0, "-", "regex"], [16, 0, 0, "-", "reverse_dns_lookup"], [17, 0, 0, "-", "robotstxt"], [18, 0, 0, "-", "serp"], [19, 0, 0, "-", "sitemaps"], [20, 0, 0, "-", "spider"], [21, 0, 0, "-", "stopwords"], [23, 0, 0, "-", "twitter"], [24, 0, 0, "-", "url_builders"], [25, 0, 0, "-", "urlytics"], [26, 0, 0, "-", "word_frequency"], [27, 0, 0, "-", "word_tokenize"], [28, 0, 0, "-", "youtube"]], "advertools.ad_create": [[1, 1, 1, "", "ad_create"]], "advertools.ad_from_string": [[2, 1, 1, "", "ad_from_string"]], "advertools.cli": [[4, 0, 0, "-", "cli"]], "advertools.code_recipes": [[6, 0, 0, "-", "spider_strategies"]], "advertools.crawlytics": [[7, 1, 1, "", "images"], [7, 1, 1, "", "jl_subset"], [7, 1, 1, "", "jl_to_parquet"], [7, 1, 1, "", "links"], [7, 1, 1, "", "parquet_columns"], [7, 1, 1, "", "redirects"]], "advertools.emoji": [[8, 1, 1, "", "emoji_search"], [8, 1, 1, "", "extract_emoji"]], "advertools.extract": [[9, 1, 1, "", "extract"], [9, 1, 1, "", "extract_currency"], [9, 1, 1, "", "extract_exclamations"], [9, 1, 1, "", "extract_hashtags"], [9, 1, 1, "", "extract_intense_words"], [9, 1, 1, "", "extract_mentions"], [9, 1, 1, "", "extract_numbers"], [9, 1, 1, "", "extract_questions"], [9, 1, 1, "", "extract_urls"], [9, 1, 1, "", "extract_words"]], "advertools.header_spider": [[10, 2, 1, "", "HeadersSpider"], [10, 1, 1, "", "crawl_headers"]], "advertools.header_spider.HeadersSpider": [[10, 3, 1, "", "custom_settings"], [10, 4, 1, "", "errback"], [10, 3, 1, "", "name"], [10, 4, 1, "", "parse"], [10, 4, 1, "", "start_requests"]], "advertools.image_spider": [[11, 2, 1, "", "AdvImagesPipeline"], [11, 2, 1, "", "ImageSpider"], [11, 2, 1, "", "ImgItem"], [11, 1, 1, "", "crawl_images"], [11, 1, 1, "", "summarize_crawled_imgs"]], "advertools.image_spider.AdvImagesPipeline": [[11, 4, 1, "", "file_path"]], "advertools.image_spider.ImageSpider": [[11, 3, 1, "", "custom_settings"], [11, 3, 1, "", "include_img_regex"], [11, 3, 1, "", "name"], [11, 4, 1, "", "parse"], [11, 4, 1, "", "start_requests"]], "advertools.image_spider.ImgItem": [[11, 3, 1, "", "fields"]], "advertools.knowledge_graph": [[12, 1, 1, "", "knowledge_graph"]], "advertools.kw_generate": [[13, 1, 1, "", "kw_broad"], [13, 1, 1, "", "kw_exact"], [13, 1, 1, "", "kw_generate"], [13, 1, 1, "", "kw_modified"], [13, 1, 1, "", "kw_neg_broad"], [13, 1, 1, "", "kw_neg_exact"], [13, 1, 1, "", "kw_neg_phrase"], [13, 1, 1, "", "kw_phrase"]], "advertools.logs": [[14, 1, 1, "", "crawllogs_to_df"], [14, 1, 1, "", "logs_to_df"]], "advertools.reverse_dns_lookup": [[16, 1, 1, "", "reverse_dns_lookup"]], "advertools.robotstxt": [[17, 1, 1, "", "robotstxt_test"], [17, 1, 1, "", "robotstxt_to_df"]], "advertools.serp": [[18, 1, 1, "", "serp_goog"], [18, 1, 1, "", "serp_youtube"], [18, 1, 1, "", "set_logging_level"], [18, 1, 1, "", "youtube_channel_details"], [18, 1, 1, "", "youtube_video_details"]], "advertools.sitemaps": [[19, 1, 1, "", "sitemap_to_df"]], "advertools.spider": [[20, 1, 1, "", "crawl"]], "advertools.twitter": [[23, 1, 1, "", "authenticate"], [23, 1, 1, "", "get_application_rate_limit_status"], [23, 1, 1, "", "get_available_trends"], [23, 1, 1, "", "get_favorites"], [23, 1, 1, "", "get_followers_ids"], [23, 1, 1, "", "get_followers_list"], [23, 1, 1, "", "get_friends_ids"], [23, 1, 1, "", "get_friends_list"], [23, 1, 1, "", "get_home_timeline"], [23, 1, 1, "", "get_list_members"], [23, 1, 1, "", "get_list_memberships"], [23, 1, 1, "", "get_list_statuses"], [23, 1, 1, "", "get_list_subscribers"], [23, 1, 1, "", "get_list_subscriptions"], [23, 1, 1, "", "get_mentions_timeline"], [23, 1, 1, "", "get_place_trends"], [23, 1, 1, "", "get_retweeters_ids"], [23, 1, 1, "", "get_retweets"], [23, 1, 1, "", "get_supported_languages"], [23, 1, 1, "", "get_user_timeline"], [23, 1, 1, "", "lookup_status"], [23, 1, 1, "", "lookup_user"], [23, 1, 1, "", "make_dataframe"], [23, 1, 1, "", "retweeted_of_me"], [23, 1, 1, "", "search"], [23, 1, 1, "", "search_users"], [23, 1, 1, "", "set_auth_params"], [23, 1, 1, "", "show_lists"], [23, 1, 1, "", "show_owned_lists"]], "advertools.url_builders": [[24, 1, 1, "", "url_utm_ga"]], "advertools.urlytics": [[25, 1, 1, "", "url_to_df"]], "advertools.word_frequency": [[26, 1, 1, "", "word_frequency"]], "advertools.word_tokenize": [[27, 1, 1, "", "word_tokenize"]], "advertools.youtube": [[28, 1, 1, "", "activities_list"], [28, 1, 1, "", "captions_list"], [28, 1, 1, "", "channel_sections_list"], [28, 1, 1, "", "channels_list"], [28, 1, 1, "", "comment_threads_list"], [28, 1, 1, "", "comments_list"], [28, 1, 1, "", "guide_categories_list"], [28, 1, 1, "", "i18n_languages_list"], [28, 1, 1, "", "i18n_regions_list"], [28, 1, 1, "", "playlist_items_list"], [28, 1, 1, "", "playlists_list"], [28, 1, 1, "", "search"], [28, 1, 1, "", "subscriptions_list"], [28, 1, 1, "", "video_categories_list"], [28, 1, 1, "", "videos_list"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"]}, "titleterms": {"advertool": [0, 3, 4, 5, 29, 30, 31, 32], "packag": [0, 5], "subpackag": 0, "submodul": [0, 5], "modul": [0, 3, 5, 7], "content": [0, 5, 30, 32], "creat": [1, 2], "ad": [1, 2], "larg": [1, 7, 12, 17, 25], "scale": [1, 12, 17, 32], "us": [2, 4, 6, 12], "long": 2, "descript": 2, "text": [2, 4, 8, 9, 26, 30, 32], "top": 2, "down": [2, 6], "approach": [2, 17, 20, 32], "googl": [2, 12, 18, 20], "facebook": 2, "feed": 2, "instant": 2, "articl": [2, 20], "cli": [3, 4], "command": 4, "line": 4, "interfac": 4, "convert": 4, "robot": [4, 6, 17], "txt": [4, 6, 17], "file": [4, 7, 11, 14, 17], "list": [4, 6, 9, 20], "url": [4, 20, 24, 25], "tabl": [4, 30], "csv": 4, "format": [4, 14], "download": [4, 11, 19], "pars": [4, 14, 19, 25], "save": [4, 6], "an": 4, "xml": [4, 19], "sitemap": [4, 19], "split": [4, 25], "compon": 4, "scheme": 4, "netloc": 4, "path": [4, 25], "queri": [4, 20, 25], "etc": 4, "crawl": [4, 6, 7, 14, 20], "known": 4, "head": 4, "method": 4, "compress": [4, 7], "log": [4, 6, 14, 29, 30], "datafram": [4, 14], "parquet": [4, 7], "perform": 4, "revers": [4, 16], "dn": [4, 16], "lookup": [4, 16], "ip": 4, "address": 4, "gener": [4, 13], "sem": [4, 13, 30, 32], "keyword": [4, 13], "suppli": 4, "product": [4, 30, 32], "intent": 4, "word": [4, 26, 27], "get": [4, 8], "stopword": [4, 21], "select": 4, "languag": [4, 21], "count": [4, 26], "option": 4, "weight": [4, 26], "number": [4, 6, 9, 25], "search": [4, 8, 18, 20], "emoji": [4, 8, 9], "regex": [4, 20], "extract": [4, 6, 8, 9, 15, 20], "structur": [4, 9, 15, 25], "entiti": [4, 9, 15], "from": [4, 6, 8, 9], "hashtag": [4, 9], "mention": [4, 9], "token": [4, 27], "document": 4, "phrase": 4, "tweet": 4, "desir": 4, "length": 4, "seo": [4, 6, 20, 30, 32], "crawler": [4, 11, 20], "code_recip": 5, "scrape": [6, 7], "strategi": 6, "recip": 6, "how": [6, 12, 14], "page": [6, 18, 20], "those": 6, "onli": 6, "mode": [6, 20], "can": 6, "i": 6, "websit": [6, 7], "includ": 6, "its": 6, "sub": 6, "domain": 6, "copi": 6, "my": 6, "audit": 6, "them": 6, "later": 6, "automat": 6, "stop": 6, "base": 6, "certain": 6, "condit": 6, "di": 6, "obei": 6, "rule": 6, "do": 6, "set": [6, 20], "user": [6, 17], "agent": [6, 17], "while": [6, 20], "control": 6, "concurr": 6, "request": 6, "slow": 6, "so": 6, "don": 6, "t": 6, "hit": 6, "server": 6, "too": 6, "hard": 6, "multipl": 6, "same": 6, "job": 6, "want": 6, "follow": [6, 20], "link": [6, 7, 20], "specifi": 6, "depth": 6, "paus": 6, "resum": 6, "make": 6, "sure": 6, "twice": 6, "proxi": 6, "chang": [6, 29, 30], "default": 6, "header": [6, 10], "xpath": [6, 20], "express": [6, 15], "custom": [6, 20], "analysi": [7, 14, 26, 30, 32], "analyz": [7, 8, 12, 14, 17, 19, 25], "imag": [7, 11], "redirect": 7, "handl": 7, "veri": 7, "explor": 7, "column": 7, "data": [7, 14, 20, 23, 28], "type": 7, "function": [7, 9, 14, 20, 23], "insight": 8, "currenc": 9, "1234567890\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u32ba\ud804\udc5b\ud800\udd0d\ud802\udcaa\u24f2\ud804\udc63\ud800\udd28\ud802\udd1b": 9, "question": 9, "\u0294": 9, "exclam": 9, "python": [10, 20], "statu": 10, "code": 10, "checker": 10, "respons": 10, "name": 11, "import": [12, 18], "knowledg": 12, "graph": 12, "result": [12, 18], "account": 12, "setup": 12, "": 12, "api": [12, 23, 28], "campaign": [13, 32], "run": 14, "logs_to_df": 14, "support": 14, "prepar": 14, "regular": [15, 19], "bulk": [16, 17], "test": 17, "tester": 17, "engin": 18, "serp": [18, 20], "youtub": [18, 28], "index": [19, 30], "new": [19, 20], "video": 19, "spider": 20, "discoveri": 20, "On": 20, "element": 20, "pre": 20, "determin": 20, "analyt": 20, "consol": 20, "css": 20, "selector": 20, "behavior": 20, "paramet": [20, 25], "pattern": 20, "addit": 20, "sever": 21, "survei": 22, "share": 22, "feedback": 22, "twitter": 23, "authent": 23, "builder": 24, "The": 25, "directori": 25, "absolut": 26, "v": 26, "frequenc": 26, "n": 27, "gram": 27, "unreleas": 29, "0": 29, "14": 29, "2": 29, "2024": 29, "02": 29, "24": 29, "1": 29, "21": 29, "18": 29, "13": 29, "5": 29, "2023": 29, "08": 29, "22": 29, "4": 29, "07": 29, "26": 29, "3": 29, "06": 29, "27": 29, "2022": 29, "09": 29, "30": 29, "05": 29, "11": 29, "10": 29, "12": 29, "2021": 29, "04": 29, "03": 29, "31": 29, "7": 29, "2020": 29, "6": 29, "25": 29, "23": 29, "9": 29, "19": 29, "8": 29, "2019": 29, "17": 29, "29": 29, "01": 29, "2018": 29, "onlin": [30, 32], "market": [30, 32], "tool": [30, 32], "social": [30, 32], "media": [30, 32], "indic": 30, "your": 32, "instal": 32, "philosophi": 32, "convent": 32}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"advertools package": [[0, "advertools-package"]], "Subpackages": [[0, "subpackages"]], "Submodules": [[0, "submodules"], [5, "submodules"]], "Module contents": [[0, "module-advertools"], [5, "module-advertools.code_recipes"]], "Create Ads on a Large Scale": [[1, "create-ads-on-a-large-scale"]], "Create Ads Using Long Descriptive Text (top-down approach)": [[2, "create-ads-using-long-descriptive-text-top-down-approach"]], "Google Text Ads": [[2, "google-text-ads"]], "Facebook Feed Ads": [[2, "facebook-feed-ads"]], "Facebook Instant Article Ad": [[2, "facebook-instant-article-ad"]], "advertools.cli module": [[3, "module-advertools.cli"]], "advertools Command Line Interface (CLI)": [[4, "advertools-command-line-interface-cli"]], "convert a robots.txt file (or list of file URLs) to a table in a CSV format": [[4, "convert-a-robots-txt-file-or-list-of-file-urls-to-a-table-in-a-csv-format"]], "download, parse, and save an XML sitemap to a table in a CSV file": [[4, "download-parse-and-save-an-xml-sitemap-to-a-table-in-a-csv-file"]], "split a list of URLs into their components: scheme, netloc, path, query, etc.": [[4, "split-a-list-of-urls-into-their-components-scheme-netloc-path-query-etc"]], "crawl a list of known URLs using the HEAD method": [[4, "crawl-a-list-of-known-urls-using-the-head-method"]], "parse, compress and convert a log file to a DataFrame in the .parquet format": [[4, "parse-compress-and-convert-a-log-file-to-a-dataframe-in-the-parquet-format"]], "perform a reverse DNS lookup on a list of IP addresses": [[4, "perform-a-reverse-dns-lookup-on-a-list-of-ip-addresses"]], "generate a table of SEM keywords by supplying a list of products and a list of intent words": [[4, "generate-a-table-of-sem-keywords-by-supplying-a-list-of-products-and-a-list-of-intent-words"]], "get stopwords of the selected language": [[4, "get-stopwords-of-the-selected-language"]], "get word counts of a text list optionally weighted by a number list": [[4, "get-word-counts-of-a-text-list-optionally-weighted-by-a-number-list"]], "search for emoji using a regex": [[4, "search-for-emoji-using-a-regex"]], "extract structured entities from a text list; emoji, hashtags, mentions": [[4, "extract-structured-entities-from-a-text-list-emoji-hashtags-mentions"]], "tokenize documents (phrases, keywords, tweets, etc) into token of the desired length": [[4, "tokenize-documents-phrases-keywords-tweets-etc-into-token-of-the-desired-length"]], "SEO crawler": [[4, "seo-crawler"]], "advertools.code_recipes package": [[5, "advertools-code-recipes-package"]], "\ud83d\udd77 SEO Crawling & Scraping: Strategies & Recipes": [[6, "seo-crawling-scraping-strategies-recipes"]], "How to crawl a list of pages, and those pages only (list mode)?": [[6, "how-to-crawl-a-list-of-pages-and-those-pages-only-list-mode"]], "How can I crawl a website including its sub-domains?": [[6, "how-can-i-crawl-a-website-including-its-sub-domains"]], "How can I save a copy of the logs of my crawl for auditing them later?": [[6, "how-can-i-save-a-copy-of-the-logs-of-my-crawl-for-auditing-them-later"]], "How can I automatically stop my crawl based on a certain condition?": [[6, "how-can-i-automatically-stop-my-crawl-based-on-a-certain-condition"]], "How can I (dis)obey robots.txt rules?": [[6, "how-can-i-dis-obey-robots-txt-rules"]], "How do I set my User-agent while crawling?": [[6, "how-do-i-set-my-user-agent-while-crawling"]], "How can I control the number of concurrent requests while crawling?": [[6, "how-can-i-control-the-number-of-concurrent-requests-while-crawling"]], "How can I slow down the crawling so I don't hit the websites' servers too hard?": [[6, "how-can-i-slow-down-the-crawling-so-i-don-t-hit-the-websites-servers-too-hard"]], "How can I set multiple settings to the same crawl job?": [[6, "how-can-i-set-multiple-settings-to-the-same-crawl-job"]], "I want to crawl a list of pages, follow links from those pages, but only to a certain specified depth": [[6, "i-want-to-crawl-a-list-of-pages-follow-links-from-those-pages-but-only-to-a-certain-specified-depth"]], "How do I pause/resume crawling, while making sure I don't crawl the same page twice?": [[6, "how-do-i-pause-resume-crawling-while-making-sure-i-don-t-crawl-the-same-page-twice"]], "How do I use a proxy while crawling?": [[6, "how-do-i-use-a-proxy-while-crawling"]], "How can I change the default request headers?": [[6, "how-can-i-change-the-default-request-headers"]], "XPath expressions for custom extraction": [[6, "xpath-expressions-for-custom-extraction"]], "Crawling and Scraping Analysis": [[7, "module-advertools.crawlytics"]], "Analyzing crawled images": [[7, "analyzing-crawled-images"]], "Analyzing links in a crawled website": [[7, "analyzing-links-in-a-crawled-website"]], "Analyzing the redirects of a crawled website": [[7, "analyzing-the-redirects-of-a-crawled-website"]], "Handling very large crawl files": [[7, "handling-very-large-crawl-files"]], "Compressing large crawl files": [[7, "compressing-large-crawl-files"]], "Exploring the columns and data types of parquet files": [[7, "exploring-the-columns-and-data-types-of-parquet-files"]], "Module functions": [[7, "module-functions"]], "Emoji: Extract, Analyze, and Get Insights": [[8, "emoji-extract-analyze-and-get-insights"]], "Emoji Search": [[8, "emoji-search"]], "Extract Emoji from Text": [[8, "extract-emoji-from-text"]], "Extract structured entities from text lists": [[9, "extract-structured-entities-from-text-lists"]], "Extract Functions": [[9, "extract-functions"]], "Extract #hashtags": [[9, "extract-hashtags"]], "Extract @mentions": [[9, "extract-mentions"]], "Extract Currency $ \u00a2 \u00a3 \u00a4 \u00a5 \u058f \u060b \u20b2 \u20b5 \u20b8 \u20b9\ufe69 \uffe0 \uffe1 \uffe5 \uffe6 \u20ba \u20bb \u20bc \u20bd \u20be \u20bf \ufdfc": [[9, "extract-currency"]], "Extract numbers 1234567890\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u32ba\ud804\udc5b\ud800\udd0d\ud802\udcaa\u24f2\ud804\udc63\ud800\udd28\ud802\udd1b": [[9, "extract-numbers-123456789045"]], "Extract questions ? \u00bf \u037e \u055e \u061f \u1367 \u1945 \u2047 \u2048 \u2049 \u2cfa \u2cfb \u2e2e \ua60f \ua6f7 \ufe16 \ufe56 \uff1f \ud804\udd43 \ud83a\udd5f \u0294 \u203d": [[9, "extract-questions"]], "Extract Exclamations ! \u00a1 \u055c \u07f9 \u1944 \u203c \u2048 \u2049 \ufe15 \ufe57 \uff01 \ud83a\udd5e": [[9, "extract-exclamations"]], "Extract Emoji \ud83d\ude02\ud83d\ude2d\ud83e\udd7a\ud83e\udd23\u2764\ufe0f\u2728\ud83d\ude4f\ud83d\ude0d": [[9, "extract-emoji"]], "\ud83d\udd77 Python Status Code Checker with Response Headers": [[10, "python-status-code-checker-with-response-headers"]], "Image Crawler and Downloader": [[11, "image-crawler-and-downloader"]], "Image file names": [[11, "image-file-names"]], "Import and Analyze Knowledge Graph Results on a Large Scale": [[12, "import-and-analyze-knowledge-graph-results-on-a-large-scale"]], "Account Setup": [[12, "account-setup"]], "How to use Google's Knowledge Graph API": [[12, "how-to-use-google-s-knowledge-graph-api"]], "Generate Keywords for SEM Campaigns": [[13, "generate-keywords-for-sem-campaigns"]], "Log File Analysis": [[14, "log-file-analysis"]], "How to run the logs_to_df() function:": [[14, "how-to-run-the-logs-to-df-function"]], "Supported Log Formats": [[14, "supported-log-formats"]], "Log File Analysis - Data Preparation": [[14, "log-file-analysis-data-preparation"]], "Parse and Analyze Crawl Logs in a Dataframe": [[14, "parse-and-analyze-crawl-logs-in-a-dataframe"]], "Regular Expressions for Extracting Structured Entities": [[15, "regular-expressions-for-extracting-structured-entities"]], "Reverse DNS Lookup in Bulk": [[16, "module-advertools.reverse_dns_lookup"]], "\ud83e\udd16 Analyze and Test robots.txt Files on a Large Scale": [[17, "analyze-and-test-robots-txt-files-on-a-large-scale"]], "Bulk robots.txt Tester": [[17, "bulk-robots-txt-tester"]], "User-agents": [[17, "user-agents"]], "robots.txt Testing Approach": [[17, "robots-txt-testing-approach"]], "Import Search Engine Results Pages (SERPs) for Google and YouTube": [[18, "import-search-engine-results-pages-serps-for-google-and-youtube"]], "Download, Parse, and Analyze XML Sitemaps": [[19, "download-parse-and-analyze-xml-sitemaps"]], "Sitemap Index": [[19, "sitemap-index"]], "Regular XML Sitemaps": [[19, "regular-xml-sitemaps"]], "News Sitemaps": [[19, "news-sitemaps"]], "Video Sitemaps": [[19, "video-sitemaps"]], "\ud83d\udd77 Python SEO Crawler / Spider": [[20, "python-seo-crawler-spider"]], "Discovery Crawling Approach": [[20, "discovery-crawling-approach"]], "Extracted On-Page SEO Elements": [[20, "extracted-on-page-seo-elements"]], "Pre-Determined Crawling Approach (List Mode)": [[20, "pre-determined-crawling-approach-list-mode"]], "SERP Data": [[20, "serp-data"]], "News Articles": [[20, "news-articles"]], "Google Analytics / Google Search Console": [[20, "google-analytics-google-search-console"]], "Custom Extraction with CSS and XPath Selectors": [[20, "custom-extraction-with-css-and-xpath-selectors"]], "Customizing the Crawling Behavior while Following Links": [[20, "customizing-the-crawling-behavior-while-following-links"]], "URL Query Parameters": [[20, "url-query-parameters"]], "URL Regex Patterns": [[20, "url-regex-patterns"]], "Spider Custom Settings and Additional Functionality": [[20, "spider-custom-settings-and-additional-functionality"]], "Stopwords in Several Languages": [[21, "stopwords-in-several-languages"]], "Stopword Languages": [[21, "stopword-languages"]], "Survey - share feedback": [[22, "survey-share-feedback"]], "Twitter Data API": [[23, "twitter-data-api"]], "Authentication": [[23, "authentication"]], "Functions": [[23, "functions"]], "URL Builders": [[24, "url-builders"]], "Split, Parse, and Analyze URL Structure": [[25, "split-parse-and-analyze-url-structure"]], "Query Parameters": [[25, "query-parameters"]], "The URL Path (Directories):": [[25, "the-url-path-directories"]], "Analyzing a large number of URLs": [[25, "analyzing-a-large-number-of-urls"]], "Text Analysis": [[26, "text-analysis"]], "Absolute and Weighted Word Count": [[26, "absolute-and-weighted-word-count"]], "Absolute vs Weighted Frequency": [[26, "absolute-vs-weighted-frequency"]], "Tokenize Words (N-grams)": [[27, "tokenize-words-n-grams"]], "YouTube Data API": [[28, "youtube-data-api"]], "advertools": [[29, "advertools"], [30, "advertools"], [31, "advertools"]], "Change Log - advertools": [[29, "change-log-advertools"]], "(UNRELEASED)": [[29, "unreleased"]], "0.14.2 (2024-02-24)": [[29, "id1"]], "0.14.1 (2024-02-21)": [[29, "id2"]], "0.14.0 (2024-02-18)": [[29, "id3"]], "0.13.5 (2023-08-22)": [[29, "id4"]], "0.13.4 (2023-07-26)": [[29, "id5"]], "0.13.3 (2023-06-27)": [[29, "id6"]], "0.13.2 (2022-09-30)": [[29, "id7"]], "0.13.1 (2022-05-11)": [[29, "id8"]], "0.13.0 (2022-02-10)": [[29, "id9"]], "0.12.3 (2021-11-27)": [[29, "id10"]], "0.12.0,1,2 (2021-11-27)": [[29, "id11"]], "0.11.1 (2021-04-09)": [[29, "id12"]], "0.11.0 (2021-03-31)": [[29, "id13"]], "0.10.7 (2020-09-18)": [[29, "id14"]], "0.10.6 (2020-06-30)": [[29, "id15"]], "0.10.5 (2020-06-14)": [[29, "id16"]], "0.10.4 (2020-06-07)": [[29, "id17"]], "0.10.3 (2020-06-03)": [[29, "id18"]], "0.10.2 (2020-05-25)": [[29, "id19"]], "0.10.1 (2020-05-23)": [[29, "id20"]], "0.10.0 (2020-05-21)": [[29, "id21"]], "0.9.1 (2020-05-19)": [[29, "id22"]], "0.9.0 (2020-04-03)": [[29, "id23"]], "0.8.1 (2020-02-08)": [[29, "id24"]], "0.8.0 (2020-02-02)": [[29, "id25"]], "0.7.3 (2019-04-17)": [[29, "id26"]], "0.7.2 (2019-03-29)": [[29, "id27"]], "0.7.1 (2019-03-26)": [[29, "id28"]], "0.7.0 (2019-03-26)": [[29, "id29"]], "0.6.0 (2019-02-11)": [[29, "id30"]], "0.5.3 (2019-01-31)": [[29, "id31"]], "0.5.2 (2018-12-01)": [[29, "id32"]], "0.5.1 (2018-11-06)": [[29, "id33"]], "0.5.0 (2018-11-04)": [[29, "id34"]], "0.4.1 (2018-10-13)": [[29, "id35"]], "0.4.0 (2018-10-08)": [[29, "id36"]], "0.3.0 (2018-08-14)": [[29, "id37"]], "0.2.0 (2018-07-06)": [[29, "id38"]], "0.1.0 (2018-07-02)": [[29, "id39"]], "Online marketing productivity and analysis tools": [[30, "online-marketing-productivity-and-analysis-tools"]], "SEM": [[30, null]], "SEO": [[30, null], [32, "seo"]], "Text & Content Analysis": [[30, null]], "Social Media": [[30, null], [32, "social-media"]], "Indices and tables": [[30, "indices-and-tables"]], "Index & Change Log": [[30, null]], "advertools: productivity & analysis tools to scale your online marketing": [[32, "advertools-productivity-analysis-tools-to-scale-your-online-marketing"]], "Installation": [[32, "installation"]], "Philosophy/approach": [[32, "philosophy-approach"]], "SEM Campaigns": [[32, "sem-campaigns"]], "Text & Content Analysis (for SEO & Social Media)": [[32, "text-content-analysis-for-seo-social-media"]], "Conventions": [[32, "conventions"]]}, "indexentries": {"advertools": [[0, "module-advertools"]], "module": [[0, "module-advertools"], [1, "module-advertools.ad_create"], [2, "module-advertools.ad_from_string"], [3, "module-advertools.cli"], [4, "module-advertools.cli.cli"], [5, "module-advertools.code_recipes"], [6, "module-advertools.code_recipes.spider_strategies"], [7, "module-advertools.crawlytics"], [8, "module-advertools.emoji"], [9, "module-advertools.extract"], [10, "module-advertools.header_spider"], [11, "module-advertools.image_spider"], [12, "module-advertools.knowledge_graph"], [13, "module-advertools.kw_generate"], [14, "module-advertools.logs"], [15, "module-advertools.regex"], [16, "module-advertools.reverse_dns_lookup"], [17, "module-advertools.robotstxt"], [18, "module-advertools.serp"], [19, "module-advertools.sitemaps"], [20, "module-advertools.spider"], [21, "module-advertools.stopwords"], [23, "module-advertools.twitter"], [24, "module-advertools.url_builders"], [25, "module-advertools.urlytics"], [26, "module-advertools.word_frequency"], [27, "module-advertools.word_tokenize"], [28, "module-advertools.youtube"]], "ad_create() (in module advertools.ad_create)": [[1, "advertools.ad_create.ad_create"]], "advertools.ad_create": [[1, "module-advertools.ad_create"]], "ad_from_string() (in module advertools.ad_from_string)": [[2, "advertools.ad_from_string.ad_from_string"]], "advertools.ad_from_string": [[2, "module-advertools.ad_from_string"]], "capitalize": [[2, "term-capitalize"]], "s": [[2, "term-s"]], "sep": [[2, "term-sep"]], "slots": [[2, "term-slots"]], "advertools.cli": [[3, "module-advertools.cli"]], "advertools.cli.cli": [[4, "module-advertools.cli.cli"]], "advertools.code_recipes": [[5, "module-advertools.code_recipes"]], "advertools.code_recipes.spider_strategies": [[6, "module-advertools.code_recipes.spider_strategies"]], "advertools.crawlytics": [[7, "module-advertools.crawlytics"]], "images() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.images"]], "jl_subset() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.jl_subset"]], "jl_to_parquet() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.jl_to_parquet"]], "links() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.links"]], "parquet_columns() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.parquet_columns"]], "redirects() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.redirects"]], "advertools.emoji": [[8, "module-advertools.emoji"]], "emoji_search() (in module advertools.emoji)": [[8, "advertools.emoji.emoji_search"]], "extract_emoji() (in module advertools.emoji)": [[8, "advertools.emoji.extract_emoji"]], "advertools.extract": [[9, "module-advertools.extract"]], "extract() (in module advertools.extract)": [[9, "advertools.extract.extract"]], "extract_currency() (in module advertools.extract)": [[9, "advertools.extract.extract_currency"]], "extract_exclamations() (in module advertools.extract)": [[9, "advertools.extract.extract_exclamations"]], "extract_hashtags() (in module advertools.extract)": [[9, "advertools.extract.extract_hashtags"]], "extract_intense_words() (in module advertools.extract)": [[9, "advertools.extract.extract_intense_words"]], "extract_mentions() (in module advertools.extract)": [[9, "advertools.extract.extract_mentions"]], "extract_numbers() (in module advertools.extract)": [[9, "advertools.extract.extract_numbers"]], "extract_questions() (in module advertools.extract)": [[9, "advertools.extract.extract_questions"]], "extract_urls() (in module advertools.extract)": [[9, "advertools.extract.extract_urls"]], "extract_words() (in module advertools.extract)": [[9, "advertools.extract.extract_words"]], "headersspider (class in advertools.header_spider)": [[10, "advertools.header_spider.HeadersSpider"]], "advertools.header_spider": [[10, "module-advertools.header_spider"]], "crawl_headers() (in module advertools.header_spider)": [[10, "advertools.header_spider.crawl_headers"]], "custom_settings (headersspider attribute)": [[10, "advertools.header_spider.HeadersSpider.custom_settings"]], "errback() (headersspider method)": [[10, "advertools.header_spider.HeadersSpider.errback"]], "name (headersspider attribute)": [[10, "advertools.header_spider.HeadersSpider.name"]], "parse() (headersspider method)": [[10, "advertools.header_spider.HeadersSpider.parse"]], "start_requests() (headersspider method)": [[10, "advertools.header_spider.HeadersSpider.start_requests"]], "advimagespipeline (class in advertools.image_spider)": [[11, "advertools.image_spider.AdvImagesPipeline"]], "imagespider (class in advertools.image_spider)": [[11, "advertools.image_spider.ImageSpider"]], "imgitem (class in advertools.image_spider)": [[11, "advertools.image_spider.ImgItem"]], "advertools.image_spider": [[11, "module-advertools.image_spider"]], "crawl_images() (in module advertools.image_spider)": [[11, "advertools.image_spider.crawl_images"]], "custom_settings (imagespider attribute)": [[11, "advertools.image_spider.ImageSpider.custom_settings"]], "fields (imgitem attribute)": [[11, "advertools.image_spider.ImgItem.fields"]], "file_path() (advimagespipeline method)": [[11, "advertools.image_spider.AdvImagesPipeline.file_path"]], "include_img_regex (imagespider attribute)": [[11, "advertools.image_spider.ImageSpider.include_img_regex"]], "name (imagespider attribute)": [[11, "advertools.image_spider.ImageSpider.name"]], "parse() (imagespider method)": [[11, "advertools.image_spider.ImageSpider.parse"]], "start_requests() (imagespider method)": [[11, "advertools.image_spider.ImageSpider.start_requests"]], "summarize_crawled_imgs() (in module advertools.image_spider)": [[11, "advertools.image_spider.summarize_crawled_imgs"]], "advertools.knowledge_graph": [[12, "module-advertools.knowledge_graph"]], "knowledge_graph() (in module advertools.knowledge_graph)": [[12, "advertools.knowledge_graph.knowledge_graph"]], "advertools.kw_generate": [[13, "module-advertools.kw_generate"]], "kw_broad() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_broad"]], "kw_exact() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_exact"]], "kw_generate() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_generate"]], "kw_modified() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_modified"]], "kw_neg_broad() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_neg_broad"]], "kw_neg_exact() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_neg_exact"]], "kw_neg_phrase() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_neg_phrase"]], "kw_phrase() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_phrase"]], "advertools.logs": [[14, "module-advertools.logs"]], "crawllogs_to_df() (in module advertools.logs)": [[14, "advertools.logs.crawllogs_to_df"]], "logs_to_df() (in module advertools.logs)": [[14, "advertools.logs.logs_to_df"]], "advertools.regex": [[15, "module-advertools.regex"]], "advertools.reverse_dns_lookup": [[16, "module-advertools.reverse_dns_lookup"]], "reverse_dns_lookup() (in module advertools.reverse_dns_lookup)": [[16, "advertools.reverse_dns_lookup.reverse_dns_lookup"]], "advertools.robotstxt": [[17, "module-advertools.robotstxt"]], "robotstxt_test() (in module advertools.robotstxt)": [[17, "advertools.robotstxt.robotstxt_test"]], "robotstxt_to_df() (in module advertools.robotstxt)": [[17, "advertools.robotstxt.robotstxt_to_df"]], "advertools.serp": [[18, "module-advertools.serp"]], "serp_goog() (in module advertools.serp)": [[18, "advertools.serp.serp_goog"]], "serp_youtube() (in module advertools.serp)": [[18, "advertools.serp.serp_youtube"]], "set_logging_level() (in module advertools.serp)": [[18, "advertools.serp.set_logging_level"]], "youtube_channel_details() (in module advertools.serp)": [[18, "advertools.serp.youtube_channel_details"]], "youtube_video_details() (in module advertools.serp)": [[18, "advertools.serp.youtube_video_details"]], "advertools.sitemaps": [[19, "module-advertools.sitemaps"]], "sitemap_to_df() (in module advertools.sitemaps)": [[19, "advertools.sitemaps.sitemap_to_df"]], "advertools.spider": [[20, "module-advertools.spider"]], "crawl() (in module advertools.spider)": [[20, "advertools.spider.crawl"]], "advertools.stopwords": [[21, "module-advertools.stopwords"]], "advertools.twitter": [[23, "module-advertools.twitter"]], "authenticate() (in module advertools.twitter)": [[23, "advertools.twitter.authenticate"]], "get_application_rate_limit_status() (in module advertools.twitter)": [[23, "advertools.twitter.get_application_rate_limit_status"]], "get_available_trends() (in module advertools.twitter)": [[23, "advertools.twitter.get_available_trends"]], "get_favorites() (in module advertools.twitter)": [[23, "advertools.twitter.get_favorites"]], "get_followers_ids() (in module advertools.twitter)": [[23, "advertools.twitter.get_followers_ids"]], "get_followers_list() (in module advertools.twitter)": [[23, "advertools.twitter.get_followers_list"]], "get_friends_ids() (in module advertools.twitter)": [[23, "advertools.twitter.get_friends_ids"]], "get_friends_list() (in module advertools.twitter)": [[23, "advertools.twitter.get_friends_list"]], "get_home_timeline() (in module advertools.twitter)": [[23, "advertools.twitter.get_home_timeline"]], "get_list_members() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_members"]], "get_list_memberships() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_memberships"]], "get_list_statuses() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_statuses"]], "get_list_subscribers() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_subscribers"]], "get_list_subscriptions() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_subscriptions"]], "get_mentions_timeline() (in module advertools.twitter)": [[23, "advertools.twitter.get_mentions_timeline"]], "get_place_trends() (in module advertools.twitter)": [[23, "advertools.twitter.get_place_trends"]], "get_retweeters_ids() (in module advertools.twitter)": [[23, "advertools.twitter.get_retweeters_ids"]], "get_retweets() (in module advertools.twitter)": [[23, "advertools.twitter.get_retweets"]], "get_supported_languages() (in module advertools.twitter)": [[23, "advertools.twitter.get_supported_languages"]], "get_user_timeline() (in module advertools.twitter)": [[23, "advertools.twitter.get_user_timeline"]], "lookup_status() (in module advertools.twitter)": [[23, "advertools.twitter.lookup_status"]], "lookup_user() (in module advertools.twitter)": [[23, "advertools.twitter.lookup_user"]], "make_dataframe() (in module advertools.twitter)": [[23, "advertools.twitter.make_dataframe"]], "retweeted_of_me() (in module advertools.twitter)": [[23, "advertools.twitter.retweeted_of_me"]], "search() (in module advertools.twitter)": [[23, "advertools.twitter.search"]], "search_users() (in module advertools.twitter)": [[23, "advertools.twitter.search_users"]], "set_auth_params() (in module advertools.twitter)": [[23, "advertools.twitter.set_auth_params"]], "show_lists() (in module advertools.twitter)": [[23, "advertools.twitter.show_lists"]], "show_owned_lists() (in module advertools.twitter)": [[23, "advertools.twitter.show_owned_lists"]], "advertools.url_builders": [[24, "module-advertools.url_builders"]], "url_utm_ga() (in module advertools.url_builders)": [[24, "advertools.url_builders.url_utm_ga"]], "advertools.urlytics": [[25, "module-advertools.urlytics"]], "url_to_df() (in module advertools.urlytics)": [[25, "advertools.urlytics.url_to_df"]], "advertools.word_frequency": [[26, "module-advertools.word_frequency"]], "extra_info": [[26, "term-extra_info"]], "num_list": [[26, "term-num_list"]], "phrase_len": [[26, "term-phrase_len"]], "regex": [[26, "term-regex"]], "rm_words": [[26, "term-rm_words"]], "text_list": [[26, "term-text_list"]], "word_frequency() (in module advertools.word_frequency)": [[26, "advertools.word_frequency.word_frequency"]], "advertools.word_tokenize": [[27, "module-advertools.word_tokenize"]], "word_tokenize() (in module advertools.word_tokenize)": [[27, "advertools.word_tokenize.word_tokenize"]], "activities_list() (in module advertools.youtube)": [[28, "advertools.youtube.activities_list"]], "advertools.youtube": [[28, "module-advertools.youtube"]], "captions_list() (in module advertools.youtube)": [[28, "advertools.youtube.captions_list"]], "channel_sections_list() (in module advertools.youtube)": [[28, "advertools.youtube.channel_sections_list"]], "channels_list() (in module advertools.youtube)": [[28, "advertools.youtube.channels_list"]], "comment_threads_list() (in module advertools.youtube)": [[28, "advertools.youtube.comment_threads_list"]], "comments_list() (in module advertools.youtube)": [[28, "advertools.youtube.comments_list"]], "guide_categories_list() (in module advertools.youtube)": [[28, "advertools.youtube.guide_categories_list"]], "i18n_languages_list() (in module advertools.youtube)": [[28, "advertools.youtube.i18n_languages_list"]], "i18n_regions_list() (in module advertools.youtube)": [[28, "advertools.youtube.i18n_regions_list"]], "playlist_items_list() (in module advertools.youtube)": [[28, "advertools.youtube.playlist_items_list"]], "playlists_list() (in module advertools.youtube)": [[28, "advertools.youtube.playlists_list"]], "search() (in module advertools.youtube)": [[28, "advertools.youtube.search"]], "subscriptions_list() (in module advertools.youtube)": [[28, "advertools.youtube.subscriptions_list"]], "video_categories_list() (in module advertools.youtube)": [[28, "advertools.youtube.video_categories_list"]], "videos_list() (in module advertools.youtube)": [[28, "advertools.youtube.videos_list"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["advertools", "advertools.ad_create", "advertools.ad_from_string", "advertools.cli", "advertools.cli.cli", "advertools.code_recipes", "advertools.code_recipes.spider_strategies", "advertools.crawlytics", "advertools.emoji", "advertools.extract", "advertools.header_spider", "advertools.image_spider", "advertools.knowledge_graph", "advertools.kw_generate", "advertools.logs", "advertools.regex", "advertools.reverse_dns_lookup", "advertools.robotstxt", "advertools.serp", "advertools.sitemaps", "advertools.spider", "advertools.stopwords", "advertools.survey", "advertools.twitter", "advertools.url_builders", "advertools.urlytics", "advertools.word_frequency", "advertools.word_tokenize", "advertools.youtube", "include_changelog", "index", "modules", "readme"], "filenames": ["advertools.rst", "advertools.ad_create.rst", "advertools.ad_from_string.rst", "advertools.cli.rst", "advertools.cli.cli.rst", "advertools.code_recipes.rst", "advertools.code_recipes.spider_strategies.rst", "advertools.crawlytics.rst", "advertools.emoji.rst", "advertools.extract.rst", "advertools.header_spider.rst", "advertools.image_spider.rst", "advertools.knowledge_graph.rst", "advertools.kw_generate.rst", "advertools.logs.rst", "advertools.regex.rst", "advertools.reverse_dns_lookup.rst", "advertools.robotstxt.rst", "advertools.serp.rst", "advertools.sitemaps.rst", "advertools.spider.rst", "advertools.stopwords.rst", "advertools.survey.rst", "advertools.twitter.rst", "advertools.url_builders.rst", "advertools.urlytics.rst", "advertools.word_frequency.rst", "advertools.word_tokenize.rst", "advertools.youtube.rst", "include_changelog.rst", "index.rst", "modules.rst", "readme.rst"], "titles": ["advertools package", "Create Ads on a Large Scale", "Create Ads Using Long Descriptive Text (top-down approach)", "advertools.cli module", "advertools Command Line Interface (CLI)", "advertools.code_recipes package", "\ud83d\udd77 SEO Crawling & Scraping: Strategies & Recipes", "Crawling and Scraping Analysis", "Emoji: Extract, Analyze, and Get Insights", "Extract structured entities from text lists", "\ud83d\udd77 Python Status Code Checker with Response Headers", "Image Crawler and Downloader", "Import and Analyze Knowledge Graph Results on a Large Scale", "Generate Keywords for SEM Campaigns", "Log File Analysis", "Regular Expressions for Extracting Structured Entities", "Reverse DNS Lookup in Bulk", "\ud83e\udd16 Analyze and Test robots.txt Files on a Large Scale", "Import Search Engine Results Pages (SERPs) for Google and YouTube", "Download, Parse, and Analyze XML Sitemaps", "\ud83d\udd77 Python SEO Crawler / Spider", "Stopwords in Several Languages", "Survey - share feedback", "Twitter Data API", "URL Builders", "Split, Parse, and Analyze URL Structure", "Text Analysis", "Tokenize Words (N-grams)", "YouTube Data API", "advertools", "advertools", "advertools", "advertools: productivity & analysis tools to scale your online marketing"], "terms": {"cli": [0, 29, 30, 31], "code_recip": [0, 29, 30, 31], "seo": [0, 5, 12, 13, 17, 19, 26, 29, 31], "crawl": [0, 5, 10, 11, 16, 17, 25, 29, 30, 31, 32], "scrape": [0, 5, 14, 20, 29, 30, 31], "strategi": [0, 5, 7, 10, 11, 13, 17, 19, 20, 28, 30], "recip": [0, 5, 20, 29, 30], "how": [0, 2, 5, 7, 8, 9, 10, 13, 17, 19, 20, 23, 25, 26, 29, 30, 31, 32], "list": [0, 1, 2, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32], "page": [0, 2, 4, 5, 7, 9, 10, 11, 12, 13, 14, 17, 19, 21, 23, 25, 26, 28, 29, 30, 31, 32], "those": [0, 2, 4, 5, 7, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 25, 26, 28, 29, 30, 32], "onli": [0, 1, 4, 5, 7, 9, 10, 11, 14, 15, 17, 18, 19, 20, 23, 24, 26, 28, 29, 30, 32], "mode": [0, 4, 5, 9, 23, 29, 30, 31], "can": [0, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 32], "i": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 32], "websit": [0, 4, 5, 12, 14, 17, 18, 19, 20, 25, 28, 29, 30, 31, 32], "includ": [0, 4, 5, 7, 9, 11, 13, 14, 17, 18, 19, 20, 23, 25, 27, 28, 29, 30], "its": [0, 1, 4, 5, 7, 8, 10, 12, 13, 14, 19, 20, 23, 25, 26, 28, 30, 32], "sub": [0, 4, 5, 7, 8, 9, 11, 14, 17, 19, 20, 23, 25, 29, 30, 32], "domain": [0, 4, 5, 7, 10, 14, 16, 17, 18, 20, 25, 29, 30], "save": [0, 5, 7, 10, 11, 14, 17, 20, 25, 29, 30, 32], "copi": [0, 5, 30, 32], "log": [0, 5, 16, 18, 19, 20, 25, 28, 31, 32], "my": [0, 1, 5, 9, 20, 26, 30], "audit": [0, 5, 17, 19, 20, 30], "them": [0, 2, 4, 5, 7, 9, 10, 11, 13, 14, 16, 17, 19, 20, 23, 25, 26, 29, 30, 32], "later": [0, 5, 14, 19, 30], "automat": [0, 5, 18, 28, 30, 32], "stop": [0, 4, 5, 20, 26, 29, 30, 32], "base": [0, 2, 5, 8, 10, 11, 15, 18, 20, 23, 26, 28, 29, 30, 32], "certain": [0, 4, 5, 7, 9, 10, 12, 14, 16, 17, 19, 20, 21, 25, 26, 29, 30], "condit": [0, 5, 11, 14, 20, 30], "di": [0, 5, 11, 30], "obei": [0, 5, 11, 14, 30], "robot": [0, 5, 11, 14, 19, 20, 29, 30, 31, 32], "txt": [0, 5, 8, 11, 14, 19, 20, 29, 30, 31, 32], "rule": [0, 5, 10, 11, 14, 17, 20, 25, 30, 32], "do": [0, 2, 4, 5, 7, 9, 10, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 30, 32], "set": [0, 2, 4, 5, 7, 10, 11, 12, 13, 14, 18, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32], "user": [0, 4, 5, 9, 11, 13, 14, 16, 18, 20, 23, 28, 29, 30, 31, 32], "agent": [0, 5, 10, 11, 14, 16, 20, 29, 30, 31, 32], "while": [0, 4, 5, 7, 14, 18, 23, 25, 26, 28, 29, 30, 31], "control": [0, 5, 10, 11, 18, 20, 29, 30, 32], "number": [0, 5, 7, 8, 12, 13, 16, 17, 18, 19, 20, 23, 26, 28, 29, 30, 31, 32], "concurr": [0, 5, 18, 28, 29, 30], "request": [0, 5, 7, 10, 11, 12, 14, 16, 18, 20, 23, 28, 29, 30, 32], "slow": [0, 5, 30], "down": [0, 5, 13, 14, 26, 29, 30, 31, 32], "so": [0, 2, 5, 7, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 30, 32], "don": [0, 1, 4, 5, 7, 9, 10, 14, 18, 20, 25, 26, 29, 30, 32], "t": [0, 1, 4, 5, 7, 9, 10, 13, 14, 18, 20, 25, 26, 27, 29, 30, 32], "hit": [0, 5, 10, 20, 30], "server": [0, 5, 10, 14, 16, 18, 20, 28, 30], "too": [0, 5, 9, 20, 26, 30, 32], "hard": [0, 5, 30], "multipl": [0, 4, 5, 7, 9, 12, 17, 18, 19, 20, 29, 30, 32], "same": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29, 30, 32], "job": [0, 5, 13, 30, 32], "want": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 30, 32], "follow": [0, 2, 4, 5, 7, 8, 9, 14, 18, 19, 21, 23, 25, 26, 28, 29, 30, 31, 32], "link": [0, 4, 5, 9, 10, 18, 19, 23, 25, 28, 29, 30, 31, 32], "from": [0, 5, 7, 11, 12, 14, 15, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 31, 32], "specifi": [0, 2, 5, 7, 9, 12, 14, 17, 18, 20, 23, 27, 28, 29, 30, 32], "depth": [0, 5, 10, 20, 30], "paus": [0, 5, 30], "resum": [0, 5, 30, 32], "make": [0, 1, 2, 5, 7, 9, 10, 14, 16, 17, 18, 19, 20, 23, 25, 26, 29, 30, 32], "sure": [0, 1, 2, 5, 9, 10, 16, 18, 20, 23, 25, 29, 30], "twice": [0, 5, 26, 29, 30], "us": [0, 1, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 29, 30, 31, 32], "proxi": [0, 5, 16, 30], "chang": [0, 2, 4, 5, 11, 14, 17, 18, 20, 26, 32], "default": [0, 2, 4, 5, 9, 12, 13, 14, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 32], "header": [0, 4, 5, 7, 17, 19, 20, 29, 30, 31, 32], "xpath": [0, 4, 5, 29, 30, 31, 32], "express": [0, 4, 5, 7, 8, 9, 11, 13, 14, 17, 18, 20, 26, 29, 30, 31, 32], "custom": [0, 4, 5, 10, 11, 14, 18, 29, 30, 31, 32], "extract": [0, 5, 7, 14, 17, 25, 29, 30, 31, 32], "creat": [0, 6, 7, 8, 10, 11, 12, 13, 18, 23, 25, 28, 29, 30, 31, 32], "ad": [0, 4, 7, 9, 13, 20, 23, 24, 26, 28, 29, 30, 31, 32], "larg": [0, 6, 8, 14, 16, 18, 19, 20, 26, 29, 30, 31, 32], "scale": [0, 16, 29, 30, 31], "long": [0, 1, 4, 7, 9, 14, 16, 17, 18, 23, 25, 28, 29, 30, 31, 32], "descript": [0, 6, 7, 9, 12, 13, 20, 23, 25, 26, 28, 29, 30, 31, 32], "text": [0, 1, 6, 7, 10, 14, 20, 21, 23, 27, 28, 29, 31], "top": [0, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 23, 25, 26, 28, 29, 30, 31, 32], "approach": [0, 13, 25, 26, 29, 30, 31], "googl": [0, 4, 14, 16, 17, 25, 28, 29, 30, 31, 32], "facebook": [0, 17, 24, 26, 29, 30, 31], "feed": [0, 28, 29, 30, 31], "instant": [0, 29, 30, 31], "articl": [0, 7, 19, 25, 29, 30, 31, 32], "analysi": [0, 9, 10, 16, 19, 20, 23, 29, 31], "analyz": [0, 10, 18, 20, 21, 23, 26, 29, 30, 31, 32], "imag": [0, 10, 12, 14, 17, 18, 19, 20, 23, 29, 30, 31], "redirect": [0, 4, 14, 20, 29, 30, 31, 32], "handl": [0, 6, 14, 16, 17, 18, 23, 29, 30, 31, 32], "veri": [0, 1, 6, 10, 12, 13, 14, 16, 17, 19, 20, 23, 25, 26, 29, 30, 31, 32], "file": [0, 1, 6, 10, 16, 18, 19, 20, 25, 29, 30, 31, 32], "compress": [0, 14, 25, 29, 30, 31], "explor": [0, 8, 9, 19, 20, 21, 23, 29, 30, 31], "column": [0, 4, 6, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 29, 30, 31], "data": [0, 4, 9, 10, 11, 13, 17, 18, 19, 25, 26, 29, 30, 31, 32], "type": [0, 1, 2, 4, 6, 9, 10, 12, 13, 14, 17, 18, 20, 23, 25, 26, 28, 29, 30, 31, 32], "parquet": [0, 14, 25, 29, 30, 31], "function": [0, 2, 4, 6, 8, 10, 11, 12, 13, 16, 17, 18, 19, 25, 26, 27, 29, 30, 31, 32], "emoji": [0, 20, 26, 29, 30, 31, 32], "get": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32], "insight": [0, 6, 19, 26, 29, 30, 31, 32], "search": [0, 10, 12, 17, 19, 23, 24, 25, 28, 29, 30, 31, 32], "structur": [0, 6, 7, 10, 13, 19, 23, 29, 30, 31, 32], "entiti": [0, 12, 17, 19, 23, 29, 30, 31, 32], "hashtag": [0, 15, 17, 23, 26, 29, 30, 31, 32], "mention": [0, 12, 15, 23, 25, 26, 29, 30, 31, 32], "currenc": [0, 26, 29, 30, 31, 32], "1234567890\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u32ba\ud804\udc5b\ud800\udd0d\ud802\udcaa\u24f2\ud804\udc63\ud800\udd28\ud802\udd1b": [0, 29, 30, 31], "question": [0, 2, 19, 23, 26, 27, 29, 30, 31, 32], "\u0294": [0, 29, 30, 31], "exclam": [0, 27, 29, 30, 31], "python": [0, 4, 8, 21, 23, 29, 30, 31, 32], "statu": [0, 4, 7, 8, 14, 20, 23, 28, 29, 30, 31, 32], "code": [0, 4, 6, 7, 8, 9, 11, 12, 14, 18, 19, 20, 23, 24, 28, 29, 30, 31, 32], "checker": [0, 29, 30, 31], "respons": [0, 4, 7, 11, 12, 14, 17, 18, 19, 20, 23, 28, 29, 30, 31, 32], "crawler": [0, 6, 10, 14, 29, 30, 31, 32], "download": [0, 6, 7, 10, 17, 20, 25, 28, 29, 30, 31, 32], "name": [0, 1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 23, 24, 25, 26, 28, 29, 30, 31, 32], "import": [0, 1, 2, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32], "knowledg": [0, 28, 29, 30, 31], "graph": [0, 20, 29, 30, 31], "result": [0, 1, 6, 7, 8, 11, 14, 17, 19, 20, 23, 25, 26, 28, 29, 30, 31, 32], "account": [0, 13, 17, 18, 23, 26, 28, 29, 30, 31], "setup": [0, 29, 30, 31], "": [0, 1, 2, 4, 6, 7, 9, 10, 11, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29, 30, 31, 32], "api": [0, 7, 9, 18, 29, 30, 31, 32], "gener": [0, 9, 14, 17, 20, 24, 25, 26, 28, 29, 30, 31, 32], "keyword": [0, 8, 12, 20, 21, 26, 29, 30, 31, 32], "sem": [0, 20, 29, 31], "campaign": [0, 1, 4, 24, 29, 30, 31], "run": [0, 4, 6, 8, 11, 12, 13, 16, 17, 18, 19, 20, 23, 25, 26, 29, 30, 31, 32], "logs_to_df": [0, 29, 30, 31], "support": [0, 10, 17, 18, 20, 23, 28, 29, 30, 31, 32], "format": [0, 1, 2, 7, 10, 11, 13, 15, 17, 18, 20, 23, 28, 29, 30, 31, 32], "prepar": [0, 8, 19, 29, 30, 31], "pars": [0, 10, 11, 20, 29, 30, 31, 32], "datafram": [0, 6, 7, 8, 9, 11, 12, 13, 17, 18, 19, 20, 23, 25, 26, 29, 30, 31, 32], "regular": [0, 4, 7, 8, 9, 11, 14, 20, 26, 29, 30, 31], "revers": [0, 14, 18, 23, 28, 29, 30, 31], "dn": [0, 14, 29, 30, 31], "lookup": [0, 14, 23, 29, 30, 31], "bulk": [0, 29, 30, 31], "test": [0, 8, 29, 30, 31, 32], "tester": [0, 29, 30, 31], "engin": [0, 10, 12, 13, 14, 17, 19, 29, 30, 31, 32], "serp": [0, 12, 25, 29, 30, 31, 32], "youtub": [0, 12, 26, 29, 30, 31, 32], "xml": [0, 10, 17, 25, 29, 30, 31, 32], "sitemap": [0, 17, 20, 25, 29, 30, 31, 32], "index": [0, 4, 7, 10, 12, 14, 18, 20, 23, 29, 31, 32], "new": [0, 6, 7, 9, 14, 18, 25, 26, 29, 30, 31, 32], "video": [0, 17, 18, 23, 26, 28, 29, 30, 31, 32], "spider": [0, 4, 6, 10, 11, 14, 29, 30, 31, 32], "discoveri": [0, 29, 30, 31], "On": [0, 2, 23, 29, 30, 31], "element": [0, 2, 6, 7, 9, 10, 12, 29, 30, 31, 32], "pre": [0, 14, 26, 29, 30, 31], "determin": [0, 13, 18, 26, 29, 30, 31], "analyt": [0, 25, 26, 29, 30], "consol": [0, 18, 25, 28, 30], "css": [0, 4, 6, 29, 30, 31, 32], "selector": [0, 4, 29, 30, 31, 32], "behavior": [0, 4, 10, 11, 19, 28, 29, 30, 31, 32], "url": [0, 2, 6, 7, 9, 10, 11, 12, 14, 15, 17, 18, 19, 23, 26, 28, 29, 30, 31, 32], "queri": [0, 11, 12, 14, 17, 18, 19, 23, 28, 29, 30, 31, 32], "paramet": [0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 23, 24, 26, 27, 28, 29, 30, 31, 32], "regex": [0, 6, 7, 8, 9, 11, 14, 15, 26, 29, 30, 32], "pattern": [0, 4, 6, 7, 9, 11, 17, 19, 25, 26, 30], "addit": [0, 2, 6, 9, 11, 14, 16, 18, 23, 26, 28, 29, 30, 31, 32], "stopword": [0, 26, 29, 30, 31, 32], "sever": [0, 6, 7, 10, 14, 18, 23, 26, 28, 29, 30, 31, 32], "languag": [0, 6, 10, 12, 13, 18, 19, 20, 23, 25, 26, 28, 29, 30, 31, 32], "twitter": [0, 6, 9, 10, 17, 20, 24, 29, 30, 31, 32], "authent": [0, 16, 18, 28, 29, 30, 31], "builder": [0, 29, 30, 31], "split": [0, 2, 14, 19, 20, 26, 27, 29, 30, 31, 32], "The": [0, 1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 26, 27, 28, 29, 30, 31, 32], "path": [0, 6, 7, 10, 11, 14, 17, 19, 20, 29, 30, 31], "directori": [0, 11, 29, 30, 31], "absolut": [0, 16, 17, 25, 29, 30, 31, 32], "weight": [0, 29, 30, 31, 32], "word": [0, 1, 2, 8, 9, 12, 13, 14, 18, 19, 23, 29, 30, 31, 32], "count": [0, 1, 7, 8, 9, 14, 16, 17, 19, 23, 27, 29, 30, 31, 32], "v": [0, 19, 30], "frequenc": [0, 8, 9, 16, 29, 30, 32], "token": [0, 26, 29, 30, 31], "n": [0, 4, 6, 7, 19, 29, 30, 31], "gram": [0, 4, 29, 30, 31], "digit": [0, 32], "market": [0, 12, 13, 18, 20, 24, 29], "product": [0, 1, 2, 12, 13, 18, 20, 25, 26, 29], "tool": [0, 10, 14, 18, 19, 20, 25], "when": [1, 4, 6, 9, 10, 12, 14, 17, 18, 19, 20, 23, 26, 28, 29, 32], "you": [1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 30, 32], "also": [1, 2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 32], "need": [1, 2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 23, 26, 29, 32], "For": [1, 4, 6, 7, 10, 12, 14, 17, 18, 19, 20, 23, 25, 26, 28], "similar": [1, 7, 9, 20, 25, 28, 29], "categori": [1, 18, 19, 25, 28], "typic": [1, 2, 7, 9, 10, 14, 16, 18, 19, 20, 23, 25, 26, 28, 32], "replac": [1, 14, 19, 25, 29, 32], "latest": [1, 2, 4, 20, 23], "now": [1, 2, 7, 9, 13, 14, 17, 19, 20, 23, 26, 29], "mani": [1, 2, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 32], "time": [1, 2, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 23, 26, 28, 29, 32], "have": [1, 2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "advertool": [1, 2, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 23, 25, 26], "adv": [1, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 23, 25, 26], "dubai": 1, "tokyo": 1, "singapor": 1, "ad_creat": [1, 13, 20, 29, 32], "templat": [1, 2, 6, 19], "5": [1, 7, 8, 9, 12, 13, 14, 16, 17, 18, 19, 20, 21, 26, 30], "star": [1, 19], "hotel": [1, 8, 18], "max_len": [1, 4, 13], "30": [1, 2, 14, 17, 18, 19, 30], "fallback": 1, "great": [1, 9, 20, 25, 26, 32], "citi": [1, 12], "In": [1, 2, 6, 7, 9, 11, 12, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "an": [1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 26, 27, 28, 29, 30, 32], "thing": [1, 2, 9, 12, 13, 19, 20, 25, 27, 30, 32], "watch": [1, 19, 23], "out": [1, 9, 12, 14, 17, 18, 20, 23, 25, 26, 28, 32], "sinc": [1, 2, 7, 9, 10, 19, 20, 23, 26], "limit": [1, 2, 12, 17, 18, 20, 23, 28, 32], "each": [1, 2, 4, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 32], "slot": [1, 2, 29, 32], "exce": [1, 2], "thi": [1, 2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 32], "provid": [1, 2, 4, 6, 7, 9, 11, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "case": [1, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 29, 32], "longer": [1, 2, 9, 18, 26, 28, 29], "than": [1, 2, 17, 18, 20, 23, 26, 28, 29, 32], "lisbon": 1, "porto": 1, "algarv": 1, "freixo": 1, "de": [1, 6, 12, 13, 20], "espada": 1, "\u00e0": 1, "cinta": 1, "portug": 1, "capit": [1, 2, 4, 12, 13], "true": [1, 2, 4, 6, 7, 9, 10, 11, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29], "sourc": [1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 24, 25, 26, 27, 28], "insert": [1, 25], "string": [1, 2, 7, 8, 9, 12, 15, 18, 23, 24, 27, 28, 29], "place": [1, 6, 8, 9, 11, 12, 23, 29], "within": [1, 2, 13, 18, 20, 23, 26, 27, 28], "str": [1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 24, 25, 26], "A": [1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "brace": 1, "e": [1, 4, 6, 7, 10, 12, 13, 18, 20, 24, 25, 26, 28, 29], "g": [1, 4, 10, 18, 20, 24, 28, 29], "todai": [1, 8, 9], "int": [1, 7, 9, 11, 12, 13, 16, 18, 19, 23, 26, 29], "maximum": [1, 2, 12, 13, 16, 18, 19, 20, 23, 28], "allow": [1, 2, 4, 10, 14, 17, 18, 20, 23, 25, 28, 29, 32], "length": [1, 2, 10, 19, 23, 25, 26, 27, 29], "full": [1, 6, 7, 8, 10, 11, 13, 19, 20, 23, 26, 29, 32], "bool": [1, 2, 9, 12, 13, 18, 19, 20, 23, 25, 26], "whether": [1, 2, 4, 6, 7, 9, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29], "return": [1, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 32], "exampl": [1, 2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "let": [1, 2, 7, 9, 12, 13, 17, 18, 19, 20, 26, 28, 32], "one": [1, 2, 4, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "two": [1, 2, 6, 7, 9, 11, 13, 15, 17, 18, 20, 25, 26, 28, 29, 32], "three": [1, 6, 9, 19, 20, 23, 25, 26, 29, 32], "20": [1, 4, 9, 12, 14, 17, 18, 19, 20, 23, 26, 28, 29], "One": [1, 7, 10, 13, 17, 19, 20, 26], "favorit": [1, 9, 23, 26], "car": 1, "toyota": [1, 13], "bmw": [1, 13], "merced": 1, "lamborghini": 1, "28": [1, 17], "keep": [1, 6, 8, 12, 13, 16, 17, 20, 23, 26, 29, 32], "As": [1, 6, 7, 16, 17, 19, 25, 26, 27, 28, 32], "50": [1, 17, 18, 26, 29], "fals": [1, 2, 6, 7, 9, 13, 14, 17, 19, 20, 23, 25, 26, 29], "produc": [1, 14, 18, 19, 32], "error": [1, 4, 6, 14, 16, 18, 20, 28, 29], "someth": [1, 2, 26], "traceback": 1, "most": [1, 2, 6, 7, 9, 10, 13, 14, 18, 19, 20, 23, 26, 28, 29, 32], "recent": [1, 23, 28], "call": [1, 18, 19, 20, 23, 25, 26, 29, 32], "last": [1, 2, 9, 17, 19, 20, 25, 26, 29], "input": [1, 2], "line": [1, 6, 7, 10, 12, 14, 16, 17, 18, 20, 29, 30], "1": [1, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 30], "modul": [1, 9, 20, 26, 29, 30, 31, 32], "26": [1, 7, 9, 10, 14, 20, 24, 30], "valueerror": [1, 29], "should": [1, 4, 6, 9, 10, 11, 12, 17, 18, 20, 23, 26, 28, 32], "char": 1, "about": [2, 6, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 30, 32], "your": [2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 20, 23, 24, 25, 26, 28, 30], "especi": [2, 6, 13, 17, 19, 26], "respect": [2, 6, 7, 14, 20, 23, 26, 29], "land": [2, 13, 32], "ha": [2, 6, 7, 9, 13, 16, 17, 19, 20, 23, 25, 26, 28, 29, 32], "becom": [2, 4, 14, 20, 25, 26], "consider": [2, 26, 32], "platform": [2, 26, 32], "90": [2, 14], "charact": [2, 4, 9, 18, 23, 26, 27, 28, 29], "total": [2, 14, 17, 26], "270": 2, "That": [2, 6, 9, 20, 26, 28], "more": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "enough": [2, 13, 18, 26, 28], "space": [2, 4, 18, 19, 23, 27, 29], "talk": 2, "main": [2, 7, 12, 17, 18, 19, 20, 23, 25, 26, 29, 32], "featur": [2, 11, 18, 19, 23, 28, 29, 32], "util": [2, 23], "all": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "detail": [2, 4, 6, 7, 10, 11, 13, 14, 17, 18, 20, 23, 28, 32], "fit": [2, 28, 29], "correctli": 2, "given": [2, 6, 11, 17, 18, 19, 23, 25, 29], "ar": [2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 32], "ad_from_str": [2, 13, 20, 29, 32], "doe": [2, 6, 8, 9, 16, 17, 18, 19, 20, 26, 27, 28, 32], "exactli": [2, 7, 8, 28], "divid": [2, 26], "ani": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "remain": [2, 19, 27], "append": [2, 17, 18, 20, 29], "end": [2, 7, 9, 10, 18, 20, 25, 27, 29, 32], "anoth": [2, 7, 10, 13, 14, 19, 25, 26, 27, 32], "benefit": [2, 25, 32], "take": [2, 6, 7, 9, 12, 13, 14, 17, 19, 20, 23, 25, 26, 29, 32], "write": [2, 7, 32], "onc": [2, 4, 6, 7, 12, 13, 14, 18, 19, 20, 23, 25, 26, 28, 30, 32], "easili": [2, 6, 7, 10, 14, 17, 19, 21, 23, 25, 32], "differ": [2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 18, 19, 20, 23, 25, 26, 28, 32], "here": [2, 7, 8, 9, 10, 13, 14, 18, 19, 20, 25, 26, 32], "quick": [2, 7, 17, 19], "overview": [2, 7, 8, 9, 16, 19, 32], "avail": [2, 4, 6, 7, 10, 11, 12, 14, 15, 18, 19, 20, 21, 23, 25, 26, 28, 29, 32], "option": [2, 6, 7, 9, 10, 11, 13, 14, 17, 18, 20, 21, 23, 25, 26, 27, 28, 29, 32], "would": [2, 6, 7, 9, 11, 14, 17, 18, 19, 20, 23, 25, 26, 28], "note": [2, 7, 9, 12, 18, 20, 23, 25, 26, 28, 32], "although": [2, 20, 26, 32], "other": [2, 4, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "group": [2, 4, 7, 8, 9, 13, 17, 29, 32], "fewer": 2, "sep": [2, 29], "separ": [2, 4, 7, 9, 14, 18, 20, 23, 25, 28, 29], "which": [2, 4, 6, 7, 9, 10, 11, 12, 14, 17, 18, 19, 20, 21, 23, 25, 26, 27, 28, 29, 32], "none": [2, 4, 7, 8, 9, 10, 11, 12, 14, 17, 18, 20, 23, 24, 25, 26, 28], "whitespac": [2, 26, 27, 29], "els": [2, 12, 23, 26], "sometim": [2, 6, 13, 17, 20, 26, 32], "might": [2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 23, 25, 26, 28, 30, 32], "hyphen": 2, "leav": [2, 17], "intact": 2, "If": [2, 6, 9, 12, 14, 18, 19, 20, 23, 25, 26, 28, 29, 30], "first": [2, 6, 7, 9, 12, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "letter": [2, 7, 8, 18, 28], "five": [2, 17, 20, 25, 26], "alwai": [2, 23, 26, 29], "six": [2, 26], "ensur": [2, 20], "remaind": [2, 29], "lost": [2, 6], "know": [2, 7, 9, 13, 14, 20, 25, 26, 32], "what": [2, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 20, 23, 25, 26, 32], "miss": [2, 9, 19, 26, 29], "shorter": [2, 28, 29], "still": [2, 9, 11, 18, 19, 23, 25, 26, 28], "consist": [2, 6, 13, 14, 23, 25, 26, 29], "desc_text": 2, "gadget": 2, "onlin": [2, 20], "gx12": 2, "model": [2, 14, 19], "come": [2, 13, 14, 26], "13": [2, 6, 7, 8, 9, 10, 11, 12, 14, 17, 19, 30], "lot": [2, 7, 10, 14, 19, 25, 32], "good": [2, 4, 6, 9, 14, 16, 19, 20, 25, 26], "stuff": [2, 32], "health": [2, 28], "start": [2, 4, 6, 9, 13, 14, 18, 19, 20, 23, 26, 28, 29, 32], "shop": [2, 20], "len": [2, 4], "130": [2, 14, 16, 19], "see": [2, 6, 7, 8, 9, 11, 12, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 32], "scenario": 2, "valu": [2, 4, 6, 10, 12, 14, 18, 19, 20, 23, 25, 26, 28, 29], "extra": [2, 14, 26], "empti": [2, 6, 7, 8, 9, 25, 26, 29], "125": [2, 16], "25": [2, 7, 9, 16, 19, 20, 24, 26, 30], "look": [2, 7, 13, 19, 23, 26], "just": [2, 4, 8, 9, 11, 14, 18, 20, 23, 26, 32], "second": [2, 6, 7, 9, 12, 13, 18, 20, 25, 29, 32], "where": [2, 4, 6, 7, 9, 10, 11, 14, 18, 19, 20, 23, 25, 26, 29, 32], "our": [2, 7, 9, 14, 23, 26], "we": [2, 7, 9, 12, 13, 14, 17, 19, 20, 25, 26, 32], "up": [2, 7, 10, 12, 13, 18, 20, 23, 25, 26, 29, 32], "15": [2, 7, 9, 12, 14, 19, 25, 28], "convert": [2, 7, 14, 20, 25, 29, 32], "restrict": [2, 11, 12, 18, 20, 23, 28, 29], "iter": 2, "integ": [2, 18, 28], "after": [2, 4, 6, 7, 9, 11, 18, 19, 20, 23, 25, 26, 27, 28, 32], "text_ad": 2, "accord": [2, 17, 27], "spec": 2, "short": [2, 18, 26, 28], "wai": [2, 6, 7, 9, 10, 14, 19, 20, 23, 25, 29, 32], "10": [2, 7, 8, 9, 10, 14, 17, 18, 19, 20, 23, 25, 26, 30], "bY": 2, "captial": 2, "To": [2, 11, 13, 17, 20, 26, 28, 30], "instal": [4, 6, 30], "python3": [4, 32], "m": [4, 9, 14, 17, 18, 19, 20, 26, 28, 32], "pip": [4, 6, 30, 32], "acess": 4, "go": [4, 9, 10, 11, 13, 14, 17, 18, 19, 20, 25, 26, 29], "program": [4, 23, 32], "help": [4, 6, 7, 9, 10, 14, 16, 18, 19, 20, 23, 25, 27, 29, 32], "h": [4, 7, 9, 14, 29], "access": [4, 11, 14, 17, 18, 21, 23, 28, 32], "specif": [4, 7, 10, 18, 23, 28, 32], "usag": [4, 7, 8, 9, 20, 23, 32], "web": [4, 10, 11, 12, 18, 19, 20, 21], "local": [4, 18, 23, 28], "machin": [4, 19, 32], "http": [4, 6, 7, 8, 9, 10, 11, 12, 14, 17, 19, 20, 23, 25, 26], "www": [4, 7, 8, 9, 10, 11, 14, 17, 19], "com": [4, 6, 7, 8, 9, 10, 11, 12, 14, 16, 17, 18, 19, 20, 23, 24, 25, 28], "jo": 4, "output": [4, 6, 7, 10, 11, 14, 20, 23, 25, 29], "google_robot": 4, "robotslist": 4, "multi_robot": 4, "posit": [4, 7, 9, 12, 18, 23, 28], "argument": [4, 6, 12, 18, 20, 29], "show": [4, 7, 8, 9, 12, 13, 14, 18, 20, 25, 26, 28, 29], "messag": [4, 14, 29], "exit": [4, 14], "r": 4, "0": [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26, 28, 30], "sitemap_url": [4, 19], "recurs": [4, 19, 20, 29], "fetch": [4, 17, 20, 29], "url_list": [4, 6, 10, 14, 20], "custom_set": [4, 6, 10, 11, 14, 20, 29], "output_fil": [4, 6, 7, 10, 14, 17, 20, 25, 29], "filepath": [4, 7, 20], "jl": [4, 6, 7, 10, 14, 17, 20, 29], "modifi": [4, 8, 9, 10, 11, 13, 17, 19, 20, 21, 23, 26], "equal": [4, 14, 23, 25], "sign": [4, 9, 17, 20, 25, 27], "without": [4, 6, 10, 18, 20, 25, 26, 28, 29, 32], "between": [4, 6, 13, 14, 18, 19, 20, 26, 27, 28, 32], "log_fil": [4, 6, 14, 20], "closespider_timeout": [4, 6, 20], "f": [4, 14], "field": [4, 11, 14, 18, 28, 29], "errors_fil": [4, 14], "log_format": [4, 14], "common": [4, 6, 10, 14, 18, 28], "combin": [4, 12, 13, 14, 15, 17, 18, 20, 32], "common_with_vhost": [4, 14], "nginx_error": [4, 14], "apache_error": [4, 14], "special": [4, 9, 11, 19, 20, 25, 29, 32], "instead": [4, 9, 17, 20, 23, 25, 26, 28, 29], "ip_list": [4, 16], "semkw": 4, "exact": [4, 6, 13, 23], "broad": [4, 13], "l": 4, "c": [4, 6, 10, 21], "campaign_nam": [4, 13], "contain": [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "sell": [4, 13, 19], "per": [4, 6, 7, 8, 9, 17, 18, 19, 23, 26, 32], "match": [4, 7, 8, 9, 11, 12, 13, 14, 18, 20, 23, 28, 29], "max": [4, 10, 20], "3": [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 30], "adgroup": [4, 13], "order": [4, 7, 9, 11, 12, 13, 18, 20, 28, 29], "matter": [4, 13], "permut": [4, 13], "bui": [4, 13, 17], "arab": [4, 9, 18, 19, 21, 29], "azerbaijani": [4, 21, 29], "bengali": [4, 21, 29], "catalan": [4, 18, 21, 29], "chines": [4, 18, 21, 28, 29], "croatian": [4, 18, 21, 29], "danish": [4, 18, 21, 29], "dutch": [4, 18, 21, 29], "english": [4, 18, 21, 25, 26, 29], "finnish": [4, 18, 21, 29], "french": [4, 18, 21, 29], "german": [4, 18, 21, 29], "greek": [4, 9, 18, 21, 29], "hebrew": [4, 18, 21, 29], "hindi": [4, 19, 21, 29], "hungarian": [4, 18, 21, 29], "indonesian": [4, 18, 21, 29], "irish": [4, 21, 29], "italian": [4, 18, 21, 29], "japanes": [4, 18, 21, 29], "kazakh": [4, 21, 29], "nepali": [4, 21, 29], "norwegian": [4, 18, 21, 29], "persian": [4, 19, 21, 29], "polish": [4, 18, 21, 29], "portugues": [4, 18, 19, 21, 29], "romanian": [4, 18, 21, 29], "russian": [4, 18, 19, 21, 29], "sinhala": [4, 21, 29], "spanish": [4, 9, 18, 21, 29], "swedish": [4, 18, 21, 29], "tagalog": [4, 21, 29], "tamil": [4, 21, 29], "tatar": [4, 21, 29], "telugu": [4, 21, 29], "thai": [4, 21, 29], "turkish": [4, 18, 21, 29, 32], "ukrainian": [4, 21, 29], "urdu": [4, 19, 21, 29], "vietnames": [4, 19, 21, 29], "wordfreq": 4, "number_list": 4, "phrase_len": [4, 26, 27, 29], "text_list": [4, 8, 9, 26, 27], "sentenc": [4, 9, 26], "exclud": [4, 11, 13, 18, 20, 23, 25, 28, 29], "follow_link": [4, 6, 14, 20, 29], "d": [4, 7, 9, 10, 14, 18, 26], "allowed_domain": [4, 6, 20], "param": 4, "exclude_url_param": [4, 20, 29], "include_url_param": [4, 20, 29], "exclude_url_regex": [4, 20, 29], "include_url_regex": [4, 20, 29], "css_selector": [4, 20, 29], "xpath_selector": [4, 20, 29], "encount": [4, 14, 25], "parmet": [4, 20], "rais": [4, 20, 29], "dictionari": [4, 6, 8, 9, 10, 20, 21, 29], "map": [4, 7, 9, 12, 13, 20, 23, 32], "requir": [4, 6, 14, 18, 19, 20, 23, 24, 28, 29], "content": [4, 6, 7, 10, 12, 17, 18, 19, 20, 21, 25, 26, 28, 29, 31], "add": [4, 6, 10, 14, 20, 23, 26], "over": [4, 6, 10, 19, 20, 23, 26, 29], "170": [4, 10, 20], "kind": [4, 10, 20, 29, 32], "pleas": [4, 10, 12, 18, 20, 23, 26, 28], "refer": [4, 7, 10, 12, 14, 18, 20, 23, 25], "doc": [4, 7, 12, 23], "scrapi": [4, 6, 10, 20, 32], "org": [4, 7, 8, 10, 12], "en": [4, 6, 7, 10, 12, 19, 20, 23, 25, 28], "topic": [4, 18, 19, 23, 25, 28, 29], "html": [4, 6, 7, 10, 14, 17, 19, 20, 23, 25, 28, 29], "home": [4, 17, 28], "examl": 4, "example_output": 4, "url_1": [4, 11, 25], "url_2": [4, 11, 25], "url_3": [4, 11], "OR": [4, 18, 23, 28, 30], "process": [4, 6, 7, 10, 14, 16, 19, 25], "000": [4, 18, 23, 27], "closespider_pagecount": [4, 6, 20], "1000": [4, 18, 28], "master": [6, 10, 20], "basic": [6, 10, 13, 16, 19, 25, 32], "probabl": [6, 7, 20, 32], "achiev": [6, 27, 32], "better": [6, 7, 19, 20, 23, 25, 29, 32], "These": [6, 14, 20, 26], "some": [6, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 23, 25, 26, 28, 29, 32], "kei": [6, 8, 9, 12, 18, 20, 21, 23, 25, 26, 28, 29], "indic": [6, 10, 17, 18, 20, 23, 25, 28, 29], "simpli": [6, 7, 13, 14, 16, 17, 19, 20, 26], "done": [6, 7, 10, 13, 14, 18, 19, 25, 26, 32], "page_1": 6, "page_2": 6, "page_3": 6, "page_4": 6, "example_crawl_1": 6, "goe": [6, 19], "through": [6, 10, 11, 14, 17, 18, 19, 20, 23, 25, 26, 27, 28, 32], "discov": [6, 14, 20, 25, 32], "find": [6, 8, 9, 18, 20, 23, 25, 26, 28, 32], "exmapl": [6, 7, 10, 20, 25], "won": [6, 9, 26, 32], "solut": [6, 7], "therefor": [6, 18, 26, 28], "origin": [6, 11, 14, 18, 20, 25, 29], "commun": [6, 25, 32], "It": [6, 9, 10, 12, 13, 14, 16, 18, 19, 20, 23, 25, 26, 28, 32], "usual": [6, 12, 16, 23, 25, 26], "check": [6, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 26, 32], "except": [6, 23, 25, 26], "stat": [6, 8, 9, 29], "etc": [6, 7, 8, 9, 12, 13, 14, 15, 18, 19, 20, 21, 25, 26, 27, 29, 32], "pass": [6, 12, 17, 18, 19, 20, 23, 32], "cutom_set": 6, "practic": [6, 14, 16, 20, 32], "give": [6, 7, 9, 10, 13, 16, 18, 20, 23, 25, 26], "extens": [6, 14, 17, 18, 25, 29], "easier": [6, 9, 13, 20, 23, 25, 29, 30, 32], "retreiv": [6, 19, 29], "website_name_crawl_1": 6, "work": [6, 7, 9, 12, 13, 14, 17, 20, 23, 26, 28, 29, 32], "website_name_crawl_2": 6, "There": [6, 7, 9, 10, 14, 18, 19, 20, 23, 25, 29, 32], "few": [6, 7, 9, 10, 11, 14, 19, 20, 25, 26, 32], "trigger": 6, "thei": [6, 7, 9, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "mostli": [6, 7, 20, 25, 26, 32], "closespider_errorcount": [6, 20], "wait": [6, 20], "hour": [6, 23], "finish": 6, "had": [6, 8, 9, 26], "investig": 6, "issu": [6, 7, 29, 32], "closespider_itemcount": [6, 20], "anyth": [6, 23, 26, 29], "item": [6, 7, 11, 13, 18, 20, 23, 25, 28, 29], "h1": [6, 7, 20], "titl": [6, 7, 9, 13, 18, 20, 25, 26, 28, 29, 32], "meta_desc": [6, 7, 20], "been": [6, 19, 23, 26, 28], "exploratori": [6, 20], "techniqu": [6, 26, 32], "thousand": [6, 8, 10, 16, 26, 32], "idea": [6, 7, 9, 13, 20, 26, 32], "mind": [6, 8, 12, 20, 23, 32], "500": [6, 7, 12, 17, 18, 23, 26, 28], "robotstxt_obei": [6, 10, 11], "under": [6, 10, 11, 12, 14, 17, 26, 29], "user_ag": [6, 10, 11, 14, 17, 20], "found": [6, 7, 11, 14, 18, 19, 23], "current": [6, 7, 14, 19, 20, 23, 28, 29, 32], "your_user_ag": 6, "high": [6, 12, 18, 19, 20, 28], "sensit": [6, 13, 23], "autom": [6, 10, 17, 32], "quickli": 6, "block": [6, 14, 17, 19, 20, 29, 32], "ban": 6, "polit": [6, 23, 25, 28], "kill": 6, "concurrent_item": 6, "100": [6, 7, 14, 18, 20, 23, 26], "concurrent_request": 6, "16": [6, 9, 11, 14, 17, 19], "concurrent_requests_per_domain": [6, 20], "8": [6, 7, 8, 9, 10, 11, 12, 14, 16, 17, 19, 20, 23, 26, 30], "concurrent_requests_per_ip": 6, "download_delai": [6, 20], "interv": [6, 32], "befor": [6, 9, 18, 20, 23, 26, 28], "consecut": [6, 20], "400": [6, 17, 26], "75": [6, 7, 8, 9, 14, 16, 17, 20], "depth_limit": [6, 20], "level": [6, 14, 18, 20, 23, 25, 28, 32], "2": [6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 30], "initi": [6, 12, 29], "reason": [6, 9, 10, 14, 17, 20, 26, 29, 32], "why": [6, 7, 14, 17, 26], "mainli": [6, 11, 13, 16, 17, 26, 27], "updat": [6, 19, 29], "site": [6, 7, 13, 17, 18, 19, 20, 25, 26, 28, 29, 32], "alreadi": [6, 26], "big": [6, 13, 14, 25], "hurri": 6, "across": [6, 7, 8, 12, 18, 19, 25, 26, 32], "dai": [6, 9, 18, 23, 26, 28], "emerg": 6, "measur": [6, 18, 28, 29], "connect": [6, 7, 17, 23, 29, 32], "batteri": 6, "left": [6, 9, 28], "off": [6, 18, 26], "extrem": [6, 10, 13, 20, 32], "simpl": [6, 7, 8, 9, 10, 16, 19, 20, 23, 26, 32], "folder": [6, 11], "rerun": 6, "worri": [6, 17], "jobdir": 6, "abov": [6, 11, 12, 20, 23, 25, 26, 29], "happen": [6, 14, 25], "accid": 6, "close": 6, "comput": [6, 14, 20], "manual": 6, "ctrl": 6, "command": [6, 14, 16, 17, 29, 30], "again": [6, 14, 19, 20, 25, 26], "wa": [6, 7, 8, 9, 11, 14, 17, 19, 20, 23, 26, 29], "manag": [6, 7, 10, 18, 23, 28, 32], "But": [6, 20, 26], "doesn": [6, 13, 14, 20, 26], "duplic": [6, 16, 18, 20, 23], "step": [6, 12, 27, 32], "3rd": 6, "parti": [6, 23], "packag": [6, 20, 21, 29, 30, 31, 32], "rotat": 6, "retri": 6, "downloader_middlewar": 6, "rotating_proxy_list_path": 6, "usernam": [6, 28], "password": 6, "ipaddress": 6, "port": [6, 25], "random": [6, 17], "user123": 6, "password123": 6, "12": [6, 7, 9, 11, 14, 17, 19, 20, 23, 30], "34": [6, 12], "56": [6, 13, 14, 16, 17, 19], "78": [6, 17], "1111": 6, "1112": 6, "1113": 6, "1114": 6, "Then": [6, 20, 23], "rotating_proxi": 6, "middlewar": [6, 14], "rotatingproxymiddlewar": 6, "610": 6, "bandetectionmiddlewar": 6, "620": 6, "read": [6, 7, 9, 11, 14, 25, 32], "normal": [6, 14, 21], "being": [6, 18, 19, 20, 23, 25, 26, 28, 29, 32], "crawldf": [6, 7], "pd": [6, 7, 9, 10, 14, 17, 19, 20, 25, 26, 29], "read_json": [6, 7, 10, 17, 20], "filter": [6, 7, 14, 18, 19, 23, 25, 28, 29], "head": [6, 7, 8, 9, 10, 13, 14, 17, 19, 20, 26, 29, 30], "_rotating_proxi": 6, "request_headers_proxi": 6, "author": [6, 18, 20, 23, 25, 28], "proxy_retry_tim": 6, "123": [6, 9], "456": [6, 9], "789": [6, 9], "101": [6, 14], "8893": 6, "b3vzy214dhg6odlld29rmgrsdfgt": 6, "nan": [6, 7, 10, 12, 14, 19, 20, 25, 29], "8894": 6, "8895": 6, "8896": 6, "4": [6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 19, 20, 23, 25, 26, 28, 30], "8897": 6, "easi": [6, 10, 13, 19, 25, 29, 32], "default_request_head": [6, 20, 29], "accept": [6, 10, 18, 20, 28, 29], "encod": [6, 10, 14, 20, 23, 24, 25, 29], "gzip": [6, 10, 20], "deflat": [6, 10, 20], "actual": [6, 12, 16, 19, 20, 25, 26, 28], "were": [6, 7, 14, 18, 19, 23, 26, 28, 29], "request_headers_": [6, 7, 20], "request_headers_accept": [6, 10, 20], "request_headers_us": [6, 10, 20], "suggest": [6, 25, 28], "tag": [6, 7, 10, 17, 18, 19, 20, 28, 29, 32], "meta": [6, 10, 18, 20, 23, 25], "attribut": [6, 7, 18, 20, 23, 26, 29], "viewport": [6, 7, 20, 29], "charset": [6, 7, 10, 20, 29], "h2": [6, 7, 20, 29], "h3": [6, 7, 10, 20], "h4": 6, "h5": 6, "h6": [6, 7, 20], "canon": [6, 7, 10, 20, 29], "rel": [6, 7, 12, 16, 17, 20, 25, 29, 32], "href": [6, 20, 29], "alt_href": [6, 7, 20], "altern": [6, 17, 20, 29], "alt_hreflang": [6, 7, 20], "hreflang": [6, 10, 29], "og_prop": 6, "properti": [6, 7, 18, 20, 28], "og": [6, 7, 20, 29], "who": [6, 9, 17, 18, 19, 23, 26, 28], "opengraph": [6, 10], "og_cont": 6, "twtr_name": 6, "twtr_content": 6, "iframe_src": 6, "ifram": 6, "src": [6, 7, 11, 20, 29], "gtm_script": 6, "script": [6, 10], "googletagmanag": 6, "gtm": 6, "j": [6, 14], "id": [6, 10, 12, 18, 20, 23, 28], "gtm_noscript": 6, "link_rel_rel": 6, "link_rel_href": 6, "link_rel_stylesheet": 6, "stylesheet": 6, "css_link": 6, "nav_links_text": [6, 20], "nav": [6, 20, 29], "anchor": [6, 20], "nav_links_href": 6, "header_links_text": [6, 20], "header_links_href": 6, "footer_links_text": [6, 20], "footer": [6, 20, 29], "footer_links_href": 6, "js_script_src": 6, "javascript": 6, "js_script_text": 6, "script_src": 6, "canonical_par": 6, "parent": [6, 28], "bunch": [7, 20], "like": [7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23, 26, 28, 29, 32], "gain": [7, 19, 30], "undersand": 7, "technic": [7, 12, 32], "readi": [7, 13, 23], "made": [7, 9, 16, 23, 26], "anayz": 7, "independ": [7, 28, 32], "size": [7, 10, 14, 17, 18, 19, 20, 23, 25, 29], "cours": [7, 10, 13, 26, 32], "togeth": [7, 8, 9, 14, 17, 23, 25, 26, 32], "put": [7, 13, 14, 19, 20, 26], "context": [7, 9, 12, 15], "thought": [7, 12], "describ": [7, 13, 26], "aspect": 7, "yet": [7, 13, 20, 25, 26], "spread": [7, 32], "everi": [7, 14, 17, 19, 20, 23, 26, 28, 32], "turn": [7, 18], "alt": [7, 20, 23, 29], "width": [7, 11, 20, 28, 29], "unpack": [7, 19], "point": [7, 8, 12, 18, 25, 28], "tidi": 7, "form": [7, 9, 12, 26], "distribut": 7, "summar": [7, 8, 9, 14], "panda": [7, 8, 9, 10, 12, 13, 14, 17, 18, 19, 20, 23, 25, 26, 29, 32], "img_df": 7, "crawlyt": [7, 29], "img_src": [7, 20], "img_alt": [7, 20], "img_load": 7, "img_siz": 7, "img_decod": 7, "img_width": 7, "img_height": 7, "img_bord": 7, "nytim": [7, 19], "vi": 7, "asset": [7, 11], "static": [7, 11, 14, 17], "icon": [7, 18], "morning_144x144": 7, "b12a6923b6ad9102b766352261b1a847": 7, "webp": 7, "morn": [7, 9, 26], "logo": [7, 11], "upshot_144x144": 7, "0b1553ff703bbd07ac8fe73e6d215888": 7, "upshot": 7, "static01": [7, 19], "nyt": [7, 19], "2017": [7, 11, 19, 28], "01": [7, 17, 18, 19, 28, 30], "29": [7, 9, 10, 14, 19, 30], "podcast": [7, 19], "daili": 7, "album": 7, "art": [7, 28], "square320": 7, "v5": 7, "jpg": [7, 11, 19], "qualiti": [7, 10, 11, 18], "auto": [7, 11], "disabl": [7, 18], "upscal": 7, "newslett": 7, "brief": 7, "europ": 7, "email": [7, 12, 24], "500px": 7, "australia": [7, 18], "australialett": 7, "interpret": 7, "sonl": 7, "theinterpret": 7, "section": [7, 17, 18, 28], "world": [7, 19], "middleeast": [7, 19], "2024": [7, 11, 30], "multimedia": [7, 19], "25israel": 7, "hbcz": 7, "thumbwid": 7, "min": [7, 14], "1024px": 7, "205px": 7, "150px": 7, "async": 7, "150": [7, 17], "hama": 7, "icj": 7, "explain": [7, 19, 32], "wjth": 7, "qatar": 7, "israel": 7, "ctbv": 7, "becaus": [7, 12, 14, 16, 17, 20, 23, 25, 26, 32], "particular": [7, 17, 18, 19, 28], "repres": [7, 9, 12, 14, 18, 19, 23, 26], "own": [7, 9, 13, 14, 18, 23, 25, 26, 28, 32], "row": [7, 13, 14, 17, 18, 19, 26], "seen": [7, 14], "repeat": [7, 9, 25, 29], "interest": [7, 9, 10, 11, 12, 13, 14, 17, 19, 20, 26, 30], "variou": [7, 8, 9, 10, 19, 26, 29, 32], "notna": 7, "averag": 7, "mean": [7, 9, 10, 12, 13, 14, 17, 18, 20, 23, 25, 26, 32], "sort_valu": [7, 26], "ascend": [7, 26], "to_fram": 7, "round": 7, "99": [7, 9, 19, 26], "86": 7, "img_srcset": 7, "almost": [7, 14, 26], "height": [7, 11, 20, 28, 29], "immedi": [7, 17, 23], "u": [7, 13, 14, 18, 19, 20, 26, 28], "estim": 7, "plan": [7, 14], "accordingli": 7, "webpag": [7, 18, 28], "understand": [7, 12, 13, 17, 18, 19, 23, 25, 32], "intern": [7, 10, 18, 19, 20, 23], "extern": [7, 10, 14], "summari": [7, 8, 9, 11, 29, 32], "link_df": 7, "internal_url_regex": 7, "nofollow": [7, 20, 29], "skip": [7, 20, 29], "dfp": 7, "advertis": 7, "middl": [7, 29], "east": 7, "suppli": [7, 11, 16, 18, 20, 29], "defin": [7, 12, 14, 18, 26, 28, 29], "realli": [7, 10, 13, 14, 20, 26], "could": [7, 9, 10, 13, 18, 26, 28, 29], "even": [7, 14, 17, 18, 19, 20, 23, 26, 28, 29], "consid": [7, 9, 23, 28, 32], "part": [7, 9, 13, 16, 18, 21, 25, 26, 27, 28, 32], "thu": [7, 10, 20, 26], "frequent": [7, 26], "inform": [7, 8, 10, 12, 14, 16, 18, 19, 20, 23, 25, 26, 28, 29], "present": [7, 18, 23, 29], "redirect_df": 7, "download_lat": [7, 10, 20], "redirect_tim": [7, 10, 20], "301": [7, 20], "220263": 7, "200": [7, 10, 14, 20, 23, 26], "privaci": 7, "polici": [7, 10], "079844": 7, "hc": 7, "10940941449492": 7, "403": 7, "105": [7, 14], "0630789": 7, "13537530305428": 7, "218": 7, "spotlight": 7, "project": [7, 10, 12, 18, 20, 28, 32], "protect": 7, "852014": 7, "225": [7, 14], "regul": 7, "732559": 7, "310": 7, "sahil": 7, "chinoi": 7, "435062": 7, "intermedi": 7, "well": [7, 9, 10, 13, 14, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 32], "latenc": [7, 10], "back": [7, 14, 23, 25, 26, 32], "memori": [7, 14, 20, 25], "imposs": [7, 25], "availablel": 7, "subset": [7, 19], "jsonlin": [7, 10, 20], "jl_subset": [7, 29], "massiv": [7, 14, 16, 25], "reduc": 7, "consumpt": 7, "small": [7, 8, 17, 18, 28], "delet": [7, 29], "old": 7, "crawl_subset": 7, "col1": 7, "col2": 7, "column_regex": 7, "img_": [7, 20], "availab": 7, "img": [7, 11, 20, 29], "jsonld_": [7, 20], "json": [7, 10, 14, 18, 20, 23, 29], "ld": [7, 10, 20, 29], "resp_headers_": [7, 20], "redirect_": [7, 20], "links_": 7, "characterist": 7, "either": [7, 9, 13, 18, 19, 23, 26, 28, 29, 32], "depend": [7, 9, 10, 12, 13, 19], "deal": [7, 32], "highli": [7, 18, 20, 28, 32], "perform": [7, 14, 16, 18, 19, 20, 28], "desir": [7, 14, 23], "jl_to_parquet": [7, 29], "much": [7, 19, 20, 26, 29], "smaller": [7, 19, 28, 29], "disk": [7, 14], "power": [7, 9, 10, 20, 32], "effici": [7, 10, 14, 16, 20, 25], "read_parquet": [7, 14, 25], "pydata": 7, "_": [7, 19], "document": [7, 10, 12, 18, 20, 23, 26, 29], "advantag": [7, 14], "select": [7, 11, 14, 18, 20, 23, 28], "parquet_column": [7, 29], "6": [7, 8, 9, 11, 12, 14, 16, 17, 19, 26, 30], "7": [7, 8, 9, 12, 14, 16, 17, 19, 23, 26, 30], "9": [7, 8, 9, 10, 12, 14, 17, 19, 20, 26, 30], "11": [7, 8, 9, 10, 14, 17, 18, 19, 20, 30], "14": [7, 9, 10, 11, 12, 14, 17, 19, 30], "nyt_crawl": 7, "value_count": [7, 14, 19], "215": 7, "doubl": [7, 29], "22": [7, 14, 17, 19, 30], "int64": [7, 14, 17, 19, 29], "struct": 7, "contenturl": [7, 12], "credittext": 7, "caption": [7, 18, 28, 29], "timestamp": [7, 14], "img_summari": 7, "image_df": 7, "chunksiz": 7, "chunk": 7, "jsonld": 7, "df_subset": 7, "jl_filepath": 7, "parquet_filepath": 7, "exist": [7, 8, 9, 13, 14, 23, 29], "parquet_fileapth": 7, "pather": 7, "identifi": [7, 18, 20, 23, 25, 28], "datatyp": 7, "columns_typ": 7, "chain": [7, 20], "inermedi": 7, "minu": [7, 20], "worth": 8, "helper": [8, 27], "aid": [8, 32], "emoji_entri": 8, "unicod": [8, 15], "textual": [8, 9], "v13": [8, 29], "public": [8, 10, 20, 23], "emoji_df": [8, 29], "extract_emoji": [8, 9, 29], "statist": [8, 9, 16, 28, 29, 32], "emoji_search": [8, 29, 32], "choic": 8, "emoji_raw": 8, "develop": [8, 12, 17, 18, 23, 28], "kaggl": [8, 32], "eliasdabba": 8, "whole": [8, 10, 20, 26], "databas": [8, 9, 14, 15, 29, 32], "vegetable_emoji": 8, "veget": 8, "codepoint": 8, "sub_group": 8, "1f951": 8, "fulli": [8, 9, 23], "qualifi": 8, "avocado": 8, "food": [8, 9, 28], "drink": [8, 9, 26], "1f346": 8, "eggplant": 8, "1f954": 8, "potato": 8, "1f955": 8, "carrot": 8, "1f33d": 8, "ear": 8, "corn": 8, "expect": [8, 10, 11, 20], "love_emoji": 8, "love": [8, 23, 26], "1f48c": 8, "smilei": [8, 9], "emot": [8, 9], "1f91f": 8, "gestur": 8, "peopl": [8, 9, 12, 23, 26, 32], "bodi": [8, 9, 10, 20, 23, 32], "hand": [8, 12, 13], "finger": 8, "partial": 8, "1f3fb": 8, "light": [8, 10], "skin": 8, "tone": 8, "1f3fc": 8, "medium": [8, 18, 24, 28], "1f3fd": 8, "1f3fe": 8, "dark": 8, "1f3ff": 8, "1f340": 8, "four": [8, 9, 17, 18, 20, 25, 26, 28], "leaf": 8, "clover": 8, "anim": [8, 9], "natur": [8, 9, 11], "plant": 8, "1f3e9": 8, "travel": [8, 9], "build": [8, 10, 14, 32], "1f94a": 8, "box": [8, 17, 19, 28], "glove": 8, "activ": [8, 9, 12, 18, 19, 28], "sport": [8, 11, 19, 28], "1f9e4": 8, "object": [8, 9, 12, 14, 19, 20, 23, 28, 32], "cloth": 8, "1f1f8": 8, "1f1ee": 8, "flag": [8, 9], "slovenia": 8, "countri": [8, 18, 20, 25, 28, 29, 32], "social": [8, 9, 20, 21, 25, 26], "media": [8, 9, 11, 14, 20, 21, 23, 25, 26], "plai": [8, 12, 18, 19, 28], "around": [8, 9, 26], "sampl": [8, 12, 19, 20], "feel": [8, 9, 26, 29], "basketbal": [8, 28], "footbal": [8, 13, 19, 28, 32], "Not": [8, 23], "emoji_summari": [8, 9], "print": [8, 9, 14, 19, 21, 29], "entri": 8, "insensit": [8, 29], "dog": 8, "1f436": 8, "face": [8, 18], "mammal": 8, "1f415": 8, "1f9ae": 8, "guid": [8, 28], "200d": 8, "1f9ba": 8, "servic": [8, 12, 13, 18, 19], "1f32d": 8, "hot": [8, 9], "blue": [8, 9, 18, 25, 26, 28], "1f499": 8, "heart": 8, "1fad0": 8, "blueberri": 8, "fruit": 8, "1f4d8": 8, "book": [8, 26], "paper": 8, "1f535": 8, "circl": 8, "symbol": [8, 9, 29], "geometr": 8, "1f7e6": 8, "squar": 8, "1f537": 8, "diamond": 8, "1f539": 8, "ones": [8, 9, 10, 14, 16, 19, 20, 26], "post": [8, 9, 21, 23, 25, 26, 30, 32], "am": [8, 26], "grin": 8, "cat": 8, "hello": [8, 9, 17, 20], "dict_kei": [8, 9, 21], "emoji_text": [8, 9], "emoji_flat": [8, 9], "emoji_flat_text": [8, 9], "emoji_count": [8, 9], "emoji_freq": [8, 9], "top_emoji": [8, 9], "top_emoji_text": [8, 9], "top_emoji_group": [8, 9], "top_emoji_sub_group": [8, 9], "yellow": [8, 18], "flat": [8, 9], "number_of_emoji": 8, "smile": 8, "num_post": [8, 9], "num_emoji": [8, 9], "emoji_per_post": [8, 9], "unique_emoji": [8, 9], "infer": 9, "contrast": 9, "compani": [9, 12, 17], "brand": [9, 12, 14, 19], "extract_": [9, 29, 32], "fucntion": 9, "extract_curr": [9, 29], "surround": [9, 29], "abbrevi": 9, "usd": 9, "eur": 9, "jpy": 9, "extract_exclam": [9, 29], "excalam": 9, "mark": [9, 23, 25, 26, 27, 29], "extract_hashtag": [9, 29], "extract_intense_word": [9, 29], "intens": [9, 29], "neg": [9, 13, 23], "looooooovvvve": 9, "extract_ment": [9, 29], "network": [9, 25], "extract_numb": [9, 29], "extract_quest": [9, 29], "extract_url": [9, 29], "extract_word": [9, 29], "arbitrari": [9, 23, 29], "rest": [9, 12, 17], "restaur": 9, "along": [9, 23, 26], "recommend": [9, 14, 20, 23], "hashtag_summari": 9, "hashtags_flat": 9, "hashtag_count": 9, "hashtag_freq": 9, "top_hashtag": 9, "num_hashtag": 9, "hashtags_per_post": 9, "unique_hashtag": 9, "proper": [9, 32], "dataset": [9, 20, 25, 26, 32], "tweet": [9, 21, 23, 26, 32], "read_csv": [9, 26], "csv": [9, 11, 14, 26], "shape": [9, 14, 19], "tweet_text": [9, 26], "followers_count": [9, 26], "aerialmagzc": [9, 26], "penguinnyyyyi": [9, 26], "afraid": [9, 26], "real": [9, 23, 26], "157": [9, 26], "vibe": [9, 26], "offic": [9, 26], "metallica": [9, 26], "boss": [9, 26], "coffe": [9, 26], "break": [9, 19, 23, 26, 29, 32], "theoffic": [9, 26], "co": [9, 26], "u5vdyevvf": [9, 26], "4687": [9, 26], "ann": [9, 26], "sai": [9, 13, 18, 20, 26, 32], "she": [9, 26], "sugar": [9, 26], "hfubv4v3ai": [9, 26], "104": [9, 16, 20, 26], "venti": [9, 26], "ic": [9, 26, 28], "pump": [9, 26], "white": [9, 18, 26, 27], "mocha": [9, 26], "sweet": [9, 26], "cream": [9, 26], "caramel": [9, 26], "drizzl": [9, 26], "shout": [9, 26], "tiktok": [9, 26], "lol": [9, 26], "126": [9, 26], "never": [9, 26], "person": [9, 12, 18, 26], "until": [9, 23, 26], "kid": [9, 26], "cup": [9, 26], "life": [9, 26, 30], "saver": [9, 26], "zo0cnvuigj": [9, 26], "1595": [9, 26], "excit": [9, 26], "next": [9, 13, 20, 26, 28, 32], "chat": [9, 26], "re": [9, 23, 26], "john": [9, 26], "bradford": [9, 26], "lineup": [9, 26], "discuss": [9, 26], "redistrict": [9, 26], "area": [9, 18, 26, 28, 32], "rsvp": [9, 26], "r3ynjjjcug": [9, 26], "join": [9, 20, 26], "meet": [9, 18, 26, 28], "ho4kx7zz24": [9, 26], "kfpdr3hupi": [9, 26], "5004": [9, 26], "he": [9, 19, 26], "paid": [9, 26], "husband": [9, 26], "165": [9, 26], "nippli": [9, 26], "outsid": [9, 14, 18, 26, 28], "side": [9, 14, 26, 27], "sound": [9, 26], "blowjob": [9, 26], "front": [9, 26], "fire": [9, 26], "visit": [9, 26], "green": [9, 18, 26], "tea": [9, 26], "hahahahahahaha": [9, 26], "spend": [9, 23, 26, 32], "pamper": [9, 26], "hope": [9, 26, 32], "everyon": [9, 26], "tuesdai": [9, 26], "enjoi": [9, 26], "189": [9, 26], "marvinmilton2": [9, 26], "nearli": [9, 26], "choke": [9, 26], "1160": [9, 26], "2000": 9, "733": 9, "3665": 9, "572": 9, "mention_summari": 9, "mentions_flat": 9, "mention_count": 9, "mention_freq": 9, "top_ment": 9, "num_ment": 9, "1346": 9, "mentions_per_post": 9, "673": 9, "unique_ment": 9, "1132": 9, "zip": [9, 14, 29], "currency_summari": 9, "currency_symbol": 9, "currency_symbols_flat": 9, "currency_symbol_count": 9, "currency_symbol_freq": 9, "top_currency_symbol": 9, "currency_symbol_nam": 9, "surrounding_text": 9, "num_currency_symbol": 9, "37": [9, 18, 19, 28], "currency_symbols_per_post": 9, "0185": 9, "unique_currency_symbol": 9, "sym": 9, "number_summari": 9, "numbers_flat": 9, "number_count": 9, "number_freq": 9, "top_numb": 9, "num_numb": 9, "1727": 9, "numbers_per_post": 9, "8635": 9, "unique_numb": 9, "257": 9, "question_summari": 9, "question_mark": 9, "question_marks_flat": 9, "question_mark_count": 9, "question_mark_freq": 9, "top_question_mark": 9, "question_mark_nam": 9, "question_text": 9, "num_question_mark": 9, "321": [9, 12], "question_marks_per_post": 9, "1605": 9, "unique_question_mark": 9, "ckaiserjr": 9, "perry_ron": 9, "lilguyisback": 9, "okai": 9, "water": 9, "flavor": 9, "think": [9, 20, 25], "ll": [9, 17, 23, 26], "loos": 9, "mayb": [9, 11, 13, 17], "exclamation_summari": 9, "exclamation_mark": 9, "exclamation_marks_flat": 9, "exclamation_mark_count": 9, "exclamation_mark_freq": 9, "top_exclamation_mark": 9, "exclamation_mark_nam": 9, "exclamation_text": 9, "num_exclamation_mark": 9, "563": 9, "exclamation_marks_per_post": 9, "2815": 9, "unique_exclamation_mark": 9, "1149": 9, "5745": 9, "279": 9, "emoji_nam": 9, "159": 9, "72": [9, 14, 17, 28], "64": [9, 17], "49": [9, 12, 14], "32": [9, 10, 14, 16, 17, 19, 20], "21": [9, 11, 14, 17, 18, 19, 20, 23, 24, 30], "601": 9, "210": 9, "97": [9, 16], "67": [9, 20], "33": [9, 12, 17], "key_nam": 9, "kwarg": [9, 10, 11], "singular": 9, "straightforward": [9, 11, 20, 25], "left_char": 9, "right_char": 9, "dict": [9, 10, 11, 14, 20], "4k": 9, "number_of_symbol": 9, "bitcoin": 9, "dollar": [9, 27], "pound": 9, "euro": 9, "odai": 9, "ound": 9, "6666666666666667": 9, "written": [9, 17, 18, 19], "said": [9, 17], "No": [9, 18], "6666666666666666": 9, "posts2": 9, "\u0645\u0631\u062d\u0628\u0627": 9, "\u0644\u0627": 9, "\u062a\u0630\u0647\u0628": 9, "hola": 9, "c\u00f3mo": 9, "est\u00e1": 9, "displai": [9, 14, 17, 18, 28], "opposit": 9, "due": [9, 14, 23, 26, 28], "rtl": 9, "invert": 9, "number_of_hashtag": 9, "min_rep": 9, "instanc": [9, 12, 29], "repetit": 9, "looooooveee": 9, "youuuuuuu": 9, "haaatttteee": 9, "youuuuuu": 9, "both": [9, 13, 18, 20, 23, 26, 27, 28, 32], "jenni": 9, "hi": [9, 19, 26], "number_of_ment": 9, "number_separ": 9, "phone": 9, "333": 9, "444": 9, "555": 9, "number_of_numb": 9, "ask": [9, 18, 23, 29], "armenian": 9, "\u03c0\u03ce\u03c2": 9, "\u03b5\u03af\u03c3\u03b1\u03b9": 9, "\u0643\u064a\u0641": 9, "\u062d\u0627\u0644\u0643": 9, "did": [9, 19, 26], "notic": [9, 17], "correct": [9, 12, 29], "NOT": [9, 18, 28], "valid": [9, 18, 23, 24, 28], "b": [9, 10, 14], "url_summari": 9, "urls_flat": 9, "url_count": 9, "url_freq": 9, "top_url": 9, "top_domain": 9, "top_tld": 9, "number_of_url": 9, "num_url": 9, "urls_per_post": 9, "unique_url": 9, "words_to_extract": 9, "entire_words_onli": 9, "complet": [9, 13, 18, 23, 25, 26, 28], "words_to_find": 9, "rain": [9, 26], "snow": [9, 26], "noth": [9, 26], "word_summari": 9, "words_flat": 9, "word_count": 9, "word_freq": [9, 26], "top_word": 9, "num_word": 9, "words_per_post": 9, "unique_word": 9, "number_of_word": 9, "occurr": [9, 26], "occur": [9, 19, 20, 23, 26, 28, 29], "train": 9, "relat": [9, 18, 19, 20, 28, 32], "mini": 10, "known": [10, 20, 23, 26, 29], "hood": 10, "simplifi": [10, 18, 28], "interfac": [10, 18, 23, 29, 30, 32], "crawl_head": [10, 29], "assur": 10, "super": [10, 14], "fast": [10, 16, 29], "straight": 10, "forward": 10, "readthedoc": [10, 16, 20, 23], "io": [10, 16, 20, 23], "adver": [10, 14, 20], "dashboardom": 10, "povertydata": 10, "headers_df": 10, "crawl_tim": [10, 20], "download_timeout": [10, 20], "download_slot": [10, 20], "protocol": 10, "resp_headers_cont": [10, 20], "resp_headers_serv": [10, 20], "resp_headers_d": [10, 20], "resp_headers_vari": [10, 20], "redirect_ttl": [10, 20], "redirect_url": [10, 20], "redirect_reason": [10, 20], "resp_headers_x": [10, 20], "amz": 10, "resp_headers_last": [10, 20], "resp_headers_etag": 10, "serv": [10, 20], "backend": [10, 20], "rtd": [10, 20], "version": [10, 14, 20, 29], "method": [10, 14, 18, 20, 23, 28, 29, 30], "resp_headers_referr": 10, "resp_headers_permiss": 10, "resp_headers_strict": [10, 20], "transport": [10, 19, 20], "secur": [10, 20], "resp_headers_cf": [10, 20], "cach": [10, 20], "resp_headers_ag": [10, 20], "resp_headers_expir": [10, 20], "resp_headers_cach": [10, 20], "resp_headers_expect": [10, 20], "ct": [10, 20], "rai": [10, 20], "resp_headers_alt": 10, "svc": 10, "resp_headers_via": 10, "2022": [10, 14, 17, 19, 30], "02": [10, 17, 19, 30], "180": [10, 20], "0270483": 10, "nginx": [10, 20], "18": [10, 11, 14, 19, 30], "ubuntu": 10, "fri": 10, "feb": [10, 14], "gmt": [10, 20], "utf": [10, 14, 23], "applic": [10, 12, 14, 18, 20, 23, 28], "xhtml": [10, 20], "q": [10, 18, 23, 28], "rc2": 10, "06442": 10, "13270": 10, "0271282": 10, "cloudflar": [10, 20], "19": [10, 11, 17, 20, 30], "302": [10, 20], "rnkt7myjj7hcnsvbnzg9qdqizefftx9ytz3": 10, "gwnlj8m99yumucgdd6ytm": 10, "ibmo9hrztai": 10, "iyl50": 10, "ee0djx6z511tgx88": 10, "17": [10, 14, 16, 17, 19, 20, 30], "04": [10, 19, 30], "27": [10, 17, 19, 28, 30], "w": [10, 18, 19], "14c904a172315a4922f4d28948b916c2": 10, "proxito": [10, 20], "sendfil": [10, 20], "0710e93d610dd8c3": 10, "subdomain": [10, 20], "referr": [10, 24], "downgrad": 10, "cohort": [10, 32], "ag": [10, 20], "31536000": [10, 20], "includesubdomain": 10, "preload": 10, "1083": 10, "7200": 10, "604800": [10, 20], "report": [10, 16, 20, 25, 26, 29, 32], "uri": [10, 20], "cdn": 10, "cgi": 10, "beacon": 10, "6dba2aae6b424107": 10, "prg": 10, "443": 10, "ma": [10, 20], "86400": 10, "118614": 10, "26837": 10, "gunicorn": 10, "vegur": 10, "tip": 10, "mainten": 10, "task": [10, 13, 26, 27, 32], "continu": [10, 32], "hundr": [10, 20, 26], "period": 10, "basi": 10, "alert": 10, "ye": [10, 12], "ok": 10, "compon": [10, 14, 23, 25, 29], "metatag": 10, "direct": [10, 17], "noindex": 10, "byte": [10, 19, 20, 29], "With": [10, 19, 23, 26, 32], "consum": [10, 23, 25], "bandwidth": 10, "lookout": 10, "jpeg": 10, "png": [10, 11, 19, 20], "class": [10, 11, 20], "headersspid": 10, "arg": [10, 11], "autothrottle_en": [10, 11], "autothrottle_target_concurr": [10, 11], "httperror_allow_al": [10, 11], "errback": 10, "failur": 10, "headers_spid": 10, "start_request": [10, 11], "sine": 10, "speed": [10, 20, 29], "piec": 10, "expens": 10, "Being": 10, "abl": [10, 12, 17, 18, 32], "decis": [10, 19, 32], "optim": [10, 12], "dynam": [10, 20], "crawl_df": [10, 20], "experiment": [11, 29], "crawl_imag": [11, 29], "output_dir": 11, "min_width": 11, "minimum": 11, "pixel": 11, "avoid": [11, 25], "track": [11, 28, 29, 32], "navig": [11, 23], "elemenst": 11, "min_height": 11, "include_img_regex": 11, "Or": [11, 13, 20, 25], "economi": 11, "summarize_crawled_img": 11, "image_loc": [11, 19], "image_url": 11, "buzzfe": 11, "hannahdobro": 11, "dirti": 11, "littl": [11, 25, 30, 32], "industri": [11, 17, 18, 19, 32], "secret": 11, "tuh": 11, "user_imag": 11, "6r1oxxopc_larg": 11, "downsiz": 11, "120": 11, "03": [11, 17, 19, 30], "fce856744ed8": 11, "buzz": 11, "1303": 11, "1710779249": 11, "gif": 11, "base64": 11, "r0lgodlhaqabaiaaaaaaap": 11, "yh5baeaaaaalaaaaaabaaeaaaibraa7": 11, "245ecfa321e9": 11, "894": 11, "1710779358": 11, "chelseastewart": 11, "josh": 11, "peck": 11, "statement": 11, "drake": 11, "bell": 11, "abus": 11, "claim": [11, 16], "prod": 11, "v2": 11, "5590": 11, "1513102854": 11, "0_larg": 11, "ea6298160040": 11, "1093": 11, "1711048323": 11, "700": 11, "3a": 11, "2a": 11, "ivborw0kggoaaaansuheugaaafqaaaa7camaaadsf118aaaap1bmveuaaadigxpohbk5ewdfghi5fwi8grteghe7eqdmhr7": 11, "vymfddnm5hx334": 11, "py8fhdj5dlvvxnq6zjotzvbg1s8skwaaaacxrstlmav4eo10jnqa8ihfydaaabjuleqvryw93y64rcmbcg4czk5fszdav3f63bdaxfv4qm": 11, "axr96": 11, "wmnj0klhtpib9lcutya8k": 11, "f1rkxqh4kmipzviovwnszequmfjmvlb3": 11, "ysriv8zrqmwha1znqibuuv3jo3cn5fly3qimy2kitajb3": 11, "umlrxrgovgmqtj4hxc69an5hj9pcyyqzfxsavk58tjmntwgv24pw9kpe0fgbioklomczkngleuxlhyiimx": 11, "dt": 11, "xj8sxgocdz6ejcp7jspbqllibivmpewy7as1poez30pvqlaqvjrgeqtlfp1dblpyb0bdd": 11, "oyl2nhr7e34yujtjw6zmc3am": 11, "kxlspoodchrqwiwbxi85q6kc9pnehscmhj0vjgppuac3lwqo": 11, "ourl0aefg76m8izrt6eaaaaasuvork5cyii": 11, "josephlongo": 11, "celeb": 11, "wear": 11, "rewear": 11, "dress": 11, "2021": [11, 17, 19, 30], "06": [11, 19, 30], "a824550933a9": 11, "tomiobaro": 11, "2174": 11, "1622738336": 11, "41_larg": 11, "6634db63f453": 11, "576": [11, 12], "1710855734": 11, "cb8db05df7e7": 11, "1743": 11, "1710855790": 11, "taken": 11, "slug": [11, 19, 23, 25], "slash": 11, "locat": [11, 18, 19, 23, 25, 28, 32], "tabl": [11, 12, 13, 20, 32], "advimagespipelin": 11, "store_uri": 11, "download_func": 11, "imagespipelin": 11, "file_path": 11, "info": [11, 14, 18, 29], "store": [11, 14, 20], "imagespid": 11, "item_pipelin": 11, "image_spid": 11, "imgitem": 11, "start_url": 11, "behaviour": [11, 20], "image_dir": 11, "tha": 11, "rank": [12, 20, 29, 32], "zero": [12, 18, 20, 28], "comparison": [12, 16], "elig": 12, "score": [12, 26], "suitabl": 12, "critic": [12, 18], "clear": [12, 13, 23], "reliabl": 12, "view": [12, 18, 23, 26, 28], "send": [12, 14, 23, 32], "bill": [12, 18], "credenti": [12, 18, 23, 28], "shown": [12, 25], "below": [12, 18, 20, 26, 27, 28], "And": [12, 14], "your_google_developer_kei": 12, "knowledge_graph": [12, 29], "resultscor": 12, "203191": 12, "corpor": 12, "organ": 12, "technologi": [12, 28], "49462": 12, "19142": 12, "gmail": 12, "13251": 12, "7549": 12, "softwareappl": 12, "drive": 12, "6853": 12, "6543": 12, "browser": 12, "chrome": [12, 14], "4312": 12, "multin": 12, "conglomer": 12, "alphabet": [12, 18, 28], "inc": 12, "3395": 12, "1306": 12, "detaileddescript": 12, "articlebodi": 12, "licens": [12, 18, 28], "query_tim": [12, 29], "dtype": [12, 14, 17, 19], "203": [12, 14], "191": 12, "462": 12, "understood": 12, "fall": [12, 18, 23, 28], "inherit": 12, "everyth": [12, 23, 26], "hierarchi": 12, "belong": [12, 16, 19, 23], "funcion": 12, "manner": [12, 25], "aggreg": 12, "bing": 12, "fr": [12, 18, 20], "x": [12, 13, 14, 18, 19, 20, 32], "evalu": 12, "3587": 12, "suchmaschinenoptimierung": 12, "lokal": 12, "252": 12, "suchmaschinenmarket": 12, "71756": 12, "5056": 12, "seop": 12, "3313": 12, "seoul": 12, "administrativearea": 12, "hauptstadt": 12, "von": 12, "s\u00fcdkorea": 12, "1509": 12, "yea": 12, "ji": 12, "schauspielerin": 12, "584": 12, "actriz": 12, "posicionamiento": 12, "buscador": 12, "35": [12, 14, 20], "316": 12, "jin": 12, "cantant": 12, "53": [12, 14], "8760": 12, "54": [12, 19], "south": 12, "korea": 12, "55": [12, 13, 19], "1435": 12, "sulli": 12, "korean": [12, 18], "actress": 12, "prefix": [12, 29], "state": [12, 18, 19, 25, 28], "liter": 12, "iso": [12, 18, 23, 28], "639": [12, 18, 23, 28], "schema": 12, "enabl": [12, 18, 29], "substr": 12, "against": [12, 23, 26], "alias": 12, "jung": 12, "jungl": 12, "ho": 12, "kang": 12, "higher": [12, 18, 19, 28, 29], "chanc": 12, "kg_df": 12, "v1": 12, "properli": [13, 14, 18, 19, 25, 28, 29], "right": [13, 14, 18, 19, 25], "research": [13, 17, 32], "tediou": [13, 25], "shift": 13, "oppos": [13, 25, 29], "anywai": [13, 26], "phrase": [13, 18, 23, 26, 27, 29], "barcelona": 13, "guitar": 13, "rio": 13, "janeiro": 13, "trip": 13, "club": [13, 32], "verb": 13, "purchas": 13, "noun": 13, "intent": [13, 32], "price": [13, 20, 25], "offer": [13, 23], "clearli": [13, 25], "aren": 13, "tutori": [13, 20, 32], "certif": 13, "learn": [13, 19, 20, 26, 28, 32], "educ": 13, "fifteen": [13, 26], "twenti": [13, 17, 26], "segment": [13, 23], "target": [13, 28], "shouldn": [13, 14], "difficult": 13, "commerc": [13, 26], "focu": [13, 16, 32], "cheap": 13, "discount": 13, "luxuri": 13, "signifi": 13, "graphic": 13, "design": [13, 17, 32], "career": [13, 17], "vacanc": 13, "kw_gener": [13, 20, 29, 32], "possibl": [13, 14, 17, 18, 26, 32], "upload": [13, 18, 19, 23, 28], "kw_df": 13, "criterion": 13, "label": 13, "sem_campaign": 13, "625": [13, 16], "626": 13, "627": 13, "628": 13, "629": 13, "630": 13, "bottom": [13, 26, 32], "kw_broad": 13, "tutor": 13, "kw_exact": 13, "match_typ": 13, "capitalize_adgroup": [13, 29], "order_matt": 13, "frame": 13, "relev": [13, 18, 23, 24, 28], "final": [13, 19, 25, 28, 29], "keywords_df": 13, "tail": 13, "57": [13, 17, 19], "58": [13, 14, 17], "59": 13, "retain": [13, 25], "integr": [13, 32], "kw_modifi": 13, "kw_neg_broad": 13, "kw_neg_exact": 13, "kw_neg_phras": 13, "kw_phrase": 13, "event": [14, 18, 19, 25, 28], "complex": [14, 23], "ourselv": [14, 26], "pageview": [14, 26], "mai": [14, 17, 18, 20, 23, 26, 28], "session": [14, 18, 23], "characterisit": 14, "usuali": 14, "cater": 14, "rapid": 14, "tl": 14, "dr": 14, "access_log": 14, "log_error": 14, "logs_df": 14, "try": [14, 17, 18, 20, 26, 28, 32], "certainli": 14, "conform": 14, "weren": 14, "went": 14, "wrong": [14, 17], "fix": [14, 20, 29], "temporari": 14, "debug": [14, 18], "howev": [14, 18, 23, 26, 28], "popular": [14, 23, 28, 32], "singl": [14, 17, 18, 20, 23], "distinguish": [14, 20], "client": 14, "k": [14, 26], "extend": [14, 23], "effect": [14, 23, 25], "importantli": [14, 25, 32], "datetim": [14, 18, 19, 28, 29], "date": [14, 17, 18, 19, 20, 23, 28, 29, 32], "categor": [14, 25], "storag": [14, 19], "to_datetim": 14, "hostnam": [14, 16, 25], "ip": [14, 16, 18, 20, 29], "address": [14, 16, 20, 29], "reverse_dns_lookup": [14, 16, 29], "resourc": [14, 18, 20, 23, 28, 32], "url_to_df": [14, 19, 25, 29, 32], "famili": [14, 23], "oper": [14, 18, 19, 23, 28, 29], "system": [14, 25, 29], "bot": [14, 16], "non": [14, 18, 26, 27, 28, 29, 32], "sample_log": 14, "66": [14, 16, 20], "249": [14, 16], "73": 14, "00": [14, 17, 18, 19, 28], "0000": 14, "1095": 14, "mozilla": [14, 20], "linux": [14, 29], "android": [14, 19], "nexu": 14, "5x": 14, "mmb29p": 14, "applewebkit": 14, "537": [14, 17], "36": [14, 17, 20], "khtml": 14, "gecko": 14, "98": 14, "4758": 14, "80": [14, 16, 26], "mobil": 14, "safari": 14, "compat": [14, 23], "googlebot": [14, 16, 17], "109": 14, "237": 14, "103": 14, "118": 14, "39": [14, 16, 17, 19, 20], "env": 14, "404": [14, 20], "209": 14, "x11": 14, "x86_64": 14, "81": 14, "4044": 14, "129": 14, "45": [14, 18], "223": 14, "214": 14, "23": [14, 17, 19, 20, 30], "2240": 14, "window": [14, 20], "nt": [14, 20], "win64": 14, "x64": 14, "4430": 14, "51": [14, 16, 17], "68": [14, 17, 20], "77": [14, 17], "192": 14, "241": 14, "211": [14, 16], "176": 14, "31": [14, 16, 19, 30], "login": [14, 17], "zgrab": 14, "69": [14, 20], "48": [14, 17, 19], "stage": 14, "urlyt": 14, "520": [14, 19], "38": [14, 20], "_dash": 14, "suit": 14, "dash": [14, 29], "dash_html_compon": 14, "v2_0_0m1638886228": 14, "154258": 14, "layout": [14, 28], "2547": 14, "ua_pars": 14, "user_agent_pars": 14, "max_column": 14, "adv_log": 14, "adv_error": 14, "y": [14, 18], "z": [14, 19], "host_df": [14, 16], "1210": 14, "cpu": 14, "745": 14, "sy": 14, "729": 14, "47": 14, "wall": 14, "ip_address": [14, 16, 20], "cum_count": [14, 16], "perc": [14, 16], "cum_perc": [14, 16], "aliaslist": [14, 16], "ipaddrlist": [14, 16], "143": 14, "244": 14, "132": 14, "426": 14, "0701004": 14, "errno": [14, 16], "unknown": [14, 16], "host": [14, 16, 18, 29], "146": [14, 17], "164": 14, "110": 14, "290": [14, 17], "716": 14, "0477209": 14, "117821": 14, "46": [14, 19], "177": 14, "196": 14, "171": 14, "908": 14, "0315945": 14, "149416": 14, "ppp046177196171": 14, "hol": 14, "gr": 14, "addr": [14, 16], "arpa": [14, 16], "185": [14, 16], "173": 14, "83": 14, "182": 14, "1090": 14, "029949": 14, "179365": 14, "152": 14, "226": 14, "1261": 14, "0281389": 14, "207504": 14, "94": 14, "174": 14, "154": 14, "1415": 14, "0253415": 14, "232845": 14, "89": 14, "44": [14, 17], "1545": 14, "0213921": 14, "254237": 14, "ppp089047044105": 14, "92": 14, "119": 14, "1664": 14, "019582": 14, "273819": 14, "234": 14, "113": 14, "1777": 14, "0185947": 14, "292414": 14, "217": 14, "1858": 14, "0133289": 14, "305743": 14, "d9646265": 14, "ziggozakelijk": 14, "nl": 14, "163": 14, "243": [14, 16], "79": [14, 17], "1937": 14, "0129998": 14, "318743": 14, "135": 14, "2014": [14, 19], "0126707": 14, "331414": 14, "194": [14, 16], "179": 14, "60": [14, 16, 17], "2074": 14, "00987329": 14, "341287": 14, "vmi660635": 14, "contaboserv": 14, "net": [14, 19], "137": 14, "2132": 14, "00954418": 14, "350831": 14, "70": [14, 20], "2190": 14, "360375": 14, "tor": 14, "anonym": 14, "appliedprivaci": 14, "adress": [14, 16], "ip_host_dict": 14, "request_url_df": 14, "add_prefix": 14, "request_": 14, "request_url": 14, "request_schem": 14, "request_netloc": 14, "request_path": 14, "request_queri": 14, "request_frag": 14, "request_hostnam": 14, "request_port": 14, "request_dir_1": 14, "request_dir_2": 14, "request_dir_3": 14, "request_dir_4": 14, "request_dir_5": 14, "request_dir_6": 14, "request_dir_7": 14, "request_dir_8": 14, "request_dir_9": 14, "request_dir_10": 14, "request_dir_11": 14, "request_dir_12": 14, "request_dir_13": 14, "request_last_dir": 14, "request_query_index": 14, "request_query_": 14, "request_query_xdebug_session_start": 14, "request_query_funct": 14, "request_query_var": 14, "request_query_fil": 14, "request_query_url": 14, "request_query_a": 14, "request_query_cont": 14, "request_query_wt": 14, "request_query_act": 14, "request_query_usernam": 14, "request_query_psd": 14, "request_query_dn": 14, "request_query_step": 14, "request_query_cmd": 14, "request_query_lang": 14, "request_query_opt": 14, "request_query_folderid": 14, "request_query_input_fil": 14, "request_query_currentset": 14, "htm": 14, "request_query_typ": 14, "request_query_next_fil": 14, "request_query_curpath": 14, "request_query_pag": 14, "request_query_id": 14, "request_query_img": 14, "request_query_panel": 14, "request_query_todo": 14, "request_query_cod": 14, "request_query_ref": 14, "request_query_scopenam": 14, "request_query_op": 14, "request_query_control": 14, "request_query_q": 14, "request_query_sb_categori": 14, "request_query_email": 14, "request_query_nam": 14, "request_query_abspath": 14, "request_query_fn": 14, "request_query_thumb": 14, "request_query_nocontinu": 14, "request_query_filepath": 14, "request_query_file_link": 14, "request_query_mypath": 14, "request_query_adapt": 14, "source_fil": 14, "request_query_aam": 14, "request_query_cpabc_calendar_upd": 14, "request_query_term": 14, "request_query_itemid": 14, "request_query_search_kei": 14, "request_query_short": 14, "request_query_titl": 14, "request_query_format": 14, "request_query_findcli": 14, "request_query_v": 14, "request_query_target": 14, "request_query__": 14, "request_query_albid": 14, "request_query_p": 14, "request_query_path": 14, "request_query_mod": 14, "request_query_libpath": 14, "request_query_srt": 14, "request_query_redirect": 14, "request_query_ord": 14, "request_query_item": 14, "request_query_gid": 14, "request_query_rid": 14, "request_query_servic": 14, "request_query_ag": 14, "request_query_typeid": 14, "request_query_dir": 14, "request_query_stockcodeintern": 14, "request_query_sit": 14, "request_query_posit": 14, "request_query_filenam": 14, "referer_url_df": 14, "referer_": 14, "referer_url": 14, "referer_schem": 14, "referer_netloc": 14, "referer_path": 14, "referer_queri": 14, "referer_frag": 14, "referer_hostnam": 14, "referer_port": 14, "referer_dir_1": 14, "referer_dir_2": 14, "referer_dir_3": 14, "referer_last_dir": 14, "ua_df": 14, "json_norm": [14, 29], "ua": 14, "ua_": 14, "ua_str": 14, "ua_famili": 14, "ua_major": 14, "ua_minor": 14, "ua_patch": 14, "ua_o": 14, "major": [14, 17, 19, 23, 32], "minor": [14, 29], "patch": 14, "patch_minor": 14, "ua_devic": 14, "smartphon": [14, 19], "desktop": 14, "concat": [14, 20, 29], "axi": 14, "to_parquet": 14, "adv_logs_fin": 14, "doen": 14, "load": [14, 20, 22, 29], "satisfi": 14, "top_bot": 14, "499": 14, "petalbot": 14, "ahrefsbot": 14, "42": 14, "yandexbot": 14, "linkedinbot": [14, 17], "baiduspid": [14, 17], "dotbot": 14, "twitterbot": [14, 17], "bingbot": [14, 17], "mj12bot": 14, "java": 14, "nutch": 14, "masscan": 14, "facebookbot": 14, "happi": [14, 23], "By": [14, 18, 20, 26, 28], "destin": [14, 25], "stdout": 14, "review": [14, 18, 19, 28], "altogeth": 14, "chose": 14, "crawllogs_to_df": [14, 29], "open": [14, 17, 19, 20, 29], "core": 14, "scraper": 14, "handler": 14, "method_to": 14, "redirect_to": 14, "method_from": 14, "redirect_from": 14, "blocked_url": 14, "logs_file_path": 14, "itself": [14, 20, 25, 26], "und": 14, "crawl_logs_to_df": 14, "crawl_logs_df": 14, "conformig": 14, "chosen": 14, "log_field": 14, "must": [14, 18, 23, 26, 28], "reader": 14, "latin": [14, 28], "collect": [15, 17, 18, 23, 28, 29], "regex_raw": 15, "hashtag_raw": 15, "mention_raw": 15, "raw": 15, "share": [15, 20, 26], "compil": 15, "readabl": [15, 17, 20, 32], "annot": 15, "v11": 15, "cookbook": 15, "2nd": 15, "ed": 15, "o": 15, "reilli": 15, "verifi": [16, 19], "pipelin": [16, 32], "pointer": 16, "comand": 16, "91": 16, "74": 16, "96": 16, "375": 16, "mail": 16, "garda": 16, "ir": 16, "875": 16, "shatel": 16, "cumul": [16, 26], "percentag": [16, 26, 29], "attent": 16, "max_work": [16, 19, 29], "equival": [16, 20], "82": [16, 20], "worker": [16, 19], "multi": [16, 18], "though": [17, 18, 20, 23, 26, 28], "tini": 17, "potent": 17, "instruct": [17, 18, 28], "suppos": [17, 25], "mistak": 17, "ideal": [17, 25, 26, 32], "robotstxt_to_df": [17, 29], "amazon": [17, 19, 23], "etag": [17, 19, 29], "robotstxt_last_modifi": [17, 29], "robotstxt_url": 17, "download_d": [17, 19, 29], "a850165d925db701988daf7ead7492d3": 17, "200689": 17, "disallow": [17, 20], "exec": 17, "obido": 17, "style": [17, 20, 29], "flex": 17, "hp": 17, "mystuff": 17, "147": 17, "gp": 17, "profil": [17, 23], "148": 17, "149": 17, "etaospid": 17, "delai": 17, "ey": 17, "robots_url": 17, "googtwfb": 17, "groupbi": 17, "541": 17, "108": 17, "289": 17, "07": [17, 19, 30], "52": [17, 19], "375724": 17, "howsearchwork": 17, "comment": [17, 20, 28, 29, 32], "nat": [17, 19], "461815": 17, "291": 17, "292": [17, 19], "_escaped_fragment_": 17, "293": 17, "lang": [17, 23], "397": 17, "474456": 17, "398": 17, "prohibit": 17, "unless": [17, 26], "permiss": 17, "399": 17, "conduct": 17, "purpos": 17, "401": 17, "app": [17, 18, 23, 28, 32], "site_scraping_tos_term": 17, "php": 17, "robotstxt_test": [17, 29], "owner": [17, 18, 23, 28], "realiti": 17, "appli": [17, 18, 19, 20], "care": 17, "fb_robot": 17, "951053": 17, "536": 17, "ajax": 17, "pagelet": 17, "pagepostssectionpagelet": 17, "538": [17, 32], "safetycheck": 17, "539": 17, "540": 17, "fb_userag": 17, "drop_dupl": 17, "tolist": [17, 19], "applebot": 17, "discordbot": 17, "facebookexternalhit": 17, "ia_archiv": 17, "msnbot": 17, "naverbot": 17, "pinterestbot": 17, "seznambot": 17, "slurp": 17, "teoma": 17, "telegrambot": 17, "yandex": 17, "yeti": 17, "quit": [17, 19, 26], "bbc": [17, 19], "urls_to_test": 17, "fb_test": 17, "url_path": 17, "can_fetch": 17, "76": 17, "receiv": [17, 23], "eighti": 17, "denot": 17, "24": [17, 19, 30], "40": [17, 18, 20], "figur": [17, 20, 23, 32], "linkedin": 17, "pinterest": 17, "appl": [17, 26], "clue": 17, "robotx": 17, "robotstxt_test_df": 17, "soon": 17, "robotstxt_df": 17, "2020": [17, 19, 20, 30], "09": [17, 19, 20, 30], "702814": 17, "08": [17, 19, 30], "087985": 17, "283": 17, "284": 17, "imgr": 17, "285": 17, "286": 17, "468588": 17, "287": 17, "lose": 17, "patienc": 17, "robots_output_fil": 17, "robotsfiles_df": 17, "fill": 18, "questionnair": 18, "survei": [18, 30], "serp_": [18, 32], "dimens": [18, 28], "serp_goog": [18, 20, 29, 32], "best": [18, 23, 26], "gl": 18, "ca": [18, 26], "uk": 18, "au": 18, "nz": 18, "ten": [18, 26], "450": 18, "snippet": [18, 20, 28, 29], "querytim": [18, 29], "serp_youtub": [18, 29], "At": [18, 28], "enter": [18, 20], "panel": 18, "remov": [18, 20, 23, 26, 27, 28, 29], "entir": [18, 23], "retriev": [18, 19, 23, 28], "programmat": 18, "free": 18, "pai": 18, "cx": 18, "c2coff": 18, "cr": 18, "daterestrict": 18, "exactterm": 18, "excludeterm": 18, "filetyp": 18, "highrang": 18, "hl": [18, 28], "hq": 18, "imgcolortyp": 18, "imgdominantcolor": 18, "imgsiz": 18, "imgtyp": 18, "linksit": 18, "lowrang": 18, "lr": 18, "num": 18, "orterm": 18, "safe": [18, 23], "searchtyp": 18, "sitesearch": 18, "sitesearchfilt": 18, "sort": [18, 21, 25, 26, 28, 29], "tradit": [18, 28], "disabled0": 18, "boolean": [18, 20, 28], "tld": [18, 29], "urlth": 18, "geograph": [18, 28], "addressse": 18, "past": [18, 32], "week": [18, 19, 23, 32], "month": [18, 19, 23], "year": [18, 19, 23], "appear": [18, 19, 20, 23, 26, 29], "center": [18, 28], "crowd": 18, "improv": [18, 26, 29], "geoloc": 18, "boost": 18, "whose": [18, 26], "lead": 18, "particularli": [18, 20], "speak": 18, "unit": [18, 19, 23, 28], "rang": [18, 23], "inclus": [18, 28], "explicitli": [18, 23, 25], "internation": 18, "term": [18, 20, 24, 28, 32], "logic": 18, "AND": 18, "black": [18, 20, 26], "grayscal": 18, "color": [18, 20, 25, 26], "mono": 18, "grai": 18, "domin": 18, "brown": 18, "orang": [18, 26], "pink": 18, "purpl": 18, "red": [18, 25], "teal": 18, "huge": 18, "xlarg": 18, "xxlarg": 18, "clipart": 18, "lineart": 18, "photo": [18, 23], "lang_ja": 18, "lang_ar": 18, "lang_bg": 18, "bulgarian": 18, "lang_ca": 18, "lang_c": 18, "czech": 18, "lang_da": 18, "lang_d": 18, "lang_el": 18, "lang_en": 18, "lang_": 18, "lang_et": 18, "estonian": 18, "lang_fi": 18, "lang_fr": 18, "lang_hr": 18, "lang_hu": 18, "lang_id": 18, "lang_i": 18, "iceland": 18, "lang_it": 18, "lang_iw": 18, "lang_ko": 18, "lang_lt": 18, "lithuanian": 18, "lang_lv": 18, "latvian": 18, "lang_nl": 18, "lang_no": 18, "lang_pl": 18, "lang_pt": 18, "lang_ro": 18, "lang_ru": 18, "lang_sk": 18, "slovak": 18, "lang_sl": 18, "slovenian": 18, "lang_sr": 18, "serbian": 18, "lang_sv": 18, "lang_tr": 18, "lang_zh": 18, "cn": 18, "tw": 18, "least": [18, 26, 28], "cc_publicdomain": 18, "cc_attribut": 18, "cc_sharealik": 18, "cc_noncommerci": 18, "cc_nonderiv": 18, "safeti": 18, "safesearch": [18, 28], "unspecifi": 18, "forth": [18, 23, 28], "ever": [18, 26], "serp_df": 18, "usa": 18, "franc": 18, "your_cx": 18, "your_kei": 18, "prouc": 18, "fligt": 18, "ticket": 18, "focus": 18, "flight": [18, 23], "countryuk": 18, "countryau": 18, "channelid": [18, 28], "channeltyp": [18, 28], "eventtyp": [18, 28], "forcontentown": [18, 28], "fordevelop": [18, 28], "formin": [18, 28], "locationradiu": [18, 28], "maxresult": [18, 28], "onbehalfofcontentown": [18, 28], "pagetoken": [18, 28], "publishedaft": [18, 28], "publishedbefor": [18, 28], "regioncod": [18, 28], "relatedtovideoid": [18, 28], "relevancelanguag": [18, 28], "topicid": [18, 28], "videocapt": [18, 28], "videocategoryid": [18, 28], "videodefinit": [18, 28], "videodimens": [18, 28], "videodur": [18, 28], "videoembedd": [18, 28], "videolicens": [18, 28], "videosynd": [18, 28], "videotyp": [18, 28], "loop": [18, 23, 29], "merg": [18, 20, 23, 29], "associ": [18, 26, 28], "boat": [18, 28], "sail": [18, 28], "similarli": [18, 20, 28], "fish": [18, 28], "pipe": [18, 26, 28], "escap": [18, 28], "sent": [18, 23, 28], "7c": [18, 28], "channel": [18, 28, 29, 32], "constrain": [18, 28], "broadcast": [18, 28], "live": [18, 28, 32], "upcom": [18, 28, 32], "intend": [18, 23, 28], "exclus": [18, 28], "partner": [18, 28], "via": [18, 23, 26, 28], "conjunct": [18, 23, 28], "subsequ": [18, 28], "circular": [18, 28], "metadata": [18, 23, 28, 29], "latitud": [18, 23, 28], "longitud": [18, 23, 28], "coordin": [18, 28], "42307": [18, 28], "122": [18, 28], "08427": [18, 28], "distanc": [18, 28], "float": [18, 28], "km": [18, 23, 28], "ft": [18, 28], "mi": [18, 23, 28], "1500m": [18, 28], "5km": [18, 28], "10000ft": [18, 28], "75mi": [18, 28], "larger": [18, 23, 28], "kilomet": [18, 23, 28], "definit": [18, 28], "cm": [18, 28], "act": [18, 28], "behalf": [18, 28], "individu": [18, 28], "chronolog": [18, 28], "rate": [18, 19, 20, 23, 26, 28], "highest": [18, 28], "lowest": [18, 28], "videocount": [18, 28], "descend": [18, 28], "viewcount": [18, 28], "viewer": [18, 28], "ongo": [18, 28], "nextpagetoken": [18, 28, 29], "prevpagetoken": [18, 28], "rfc": [18, 28], "3339": [18, 28], "1970": [18, 28], "01t00": [18, 28], "00z": [18, 19, 28], "3166": [18, 28], "alpha": [18, 28], "zh": [18, 28], "han": [18, 28], "hant": [18, 28], "standard": [18, 20, 23, 25, 28, 32], "moder": [18, 28], "demot": [18, 28], "strict": [18, 28], "freebas": [18, 28], "comma": [18, 23, 26, 27, 28], "playlist": [18, 28, 29], "closedcapt": [18, 28], "hd": [18, 28], "sd": [18, 28], "playback": [18, 28], "720p": [18, 28], "resolut": [18, 28], "1080p": [18, 28], "regardless": [18, 28, 29], "2d": [18, 28], "3d": [18, 28], "durat": [18, 28], "minut": [18, 19, 25, 28], "less": [18, 20, 23, 26, 28], "embed": [18, 23, 28], "embedd": [18, 28], "choos": [18, 20, 28], "attach": [18, 23, 28], "creativ": [18, 28], "creativecommon": [18, 28], "reus": [18, 28], "syndic": [18, 28], "episod": [18, 28], "movi": [18, 19, 23, 28], "set_logging_level": 18, "level_or_nam": 18, "dure": [18, 26], "notset": 18, "warn": 18, "youtube_channel_detail": 18, "channel_id": 18, "assum": [18, 20, 23, 29], "channel_df": 18, "youtube_video_detail": 18, "vid_id": 18, "video_df": 18, "fastest": 19, "easiest": 19, "reveal": 19, "correspond": 19, "publish": [19, 28], "rich": [19, 23], "sitemap_to_df": [19, 20, 29], "loc": 19, "hte": 19, "lastmod": 19, "sitemap_last_modifi": [19, 29], "sitemap_size_mb": [19, 29], "mega": 19, "1mb": 19, "024": [19, 29], "sitmeapindex": 19, "decid": [19, 20, 23], "bbc_sitemap": 19, "archiv": 19, "2009": [19, 20], "090620_as_iraq_explosion_tc2": 19, "e7e15811c65f406f89f89fe10aef29f5": 19, "05": [19, 20, 30], "63124": 19, "461037": 19, "090620_iraq_blast_tc2": 19, "43": 19, "busi": [19, 28], "090622_me_worldbank_tc2": 19, "41": 19, "090624_me_inpictures_brazil_tc2": 19, "090618_tomtest": 19, "090625_sf_tamim_verdict_tc2": 19, "090623_iz_cairo_russia_tc2": 19, "090622_me_egypt_us_tc2": 19, "090624_mz_wimbledon_tc2": 19, "worldnew": 19, "090623_mz_leaders_lifespan_tc2": 19, "49999": 19, "datetime64": 19, "utc": 19, "float64": 19, "set_index": 19, "resampl": 19, "2008": 19, "2287": 19, "47603": 19, "2010": 19, "2011": 19, "2012": 19, "2013": 19, "2015": [19, 21, 23], "2016": [19, 21], "2018": [19, 30], "2019": [19, 30], "freq": 19, "dec": 19, "seem": [19, 20, 26], "compar": [19, 25, 29], "rolling_new": 19, "090628_rn_pakistani_soldiries_ambush": 19, "pakistan": 19, "090421_mqm_speaks_rza": 19, "090723_ae_silwan_tc2": 19, "noticia": 19, "090729_iraquerefenbritsfn": 19, "090623_egitomilitaresfn": 19, "090302_gazaconferenciaml": 19, "090715_hillary_iran_cq": 19, "cultur": 19, "090409_machienhuu_revisit": 19, "090524_paquistaoupdateg": 19, "090629_om_pakistan_report_tc2": 19, "yyyi": [19, 23, 28], "mm": [19, 23, 28], "yymmdd_article_titl": 19, "url_df": 19, "scheme": [19, 25], "netloc": [19, 25], "fragment": [19, 25], "dir_1": [19, 25], "dir_2": [19, 25], "dir_3": [19, 25], "dir_4": 19, "dir_5": 19, "dir_6": 19, "dir_7": 19, "last_dir": [19, 25, 29], "49994": 19, "090831_dalailamataiwan": 19, "49995": 19, "090901_putin_regret_pact": 19, "49996": 19, "090901_tiananmen_movi": 19, "49997": 19, "pictur": [19, 26], "090830_ugc_ddh_sand": 19, "49998": 19, "090901_japecontask": 19, "14022": 19, "10968": 19, "5403": 19, "5068": 19, "mundo": 19, "5065": 19, "3561": 19, "2984": 19, "1677": 19, "turkc": 19, "706": 19, "ukchina": 19, "545": 19, "1506": 19, "2910": 19, "3021": 19, "3250": 19, "2769": 19, "9044": 19, "5050": 19, "4224": 19, "iran": 19, "3682": 19, "2103": 19, "afghanistan": 19, "1959": 19, "1657": 19, "internacion": 19, "1555": 19, "1350": 19, "1293": 19, "india": 19, "1285": 19, "america_latina": 19, "1274": 19, "1204": 19, "cultura_sociedad": 19, "913": 19, "874": 19, "872": 19, "russia": 19, "841": 19, "radio": 19, "769": 19, "scienc": [19, 32], "755": 19, "674": 19, "underscor": 19, "concaten": 19, "seri": [19, 25], "meaning": [19, 26], "explod": 19, "rn": 19, "8808": 19, "tc2": 19, "3153": 19, "1534": 19, "973": 19, "obama": 19, "882": 19, "862": 19, "china": 19, "815": 19, "ir88": 19, "727": 19, "683": 19, "si": 19, "640": 19, "np": [19, 29], "638": 19, "afghan": 19, "632": 19, "ka": 19, "565": 19, "556": 19, "iraq": 19, "554": 19, "547": 19, "nh": 19, "533": 19, "cq": 19, "510": 19, "ra": 19, "491": 19, "familiar": 19, "bug": [19, 29], "nyt_new": 19, "gz": [19, 29], "5085": 19, "news_publ": 19, "publication_nam": 19, "publication_languag": 19, "news_publication_d": 19, "news_titl": 19, "news_keyword": 19, "interact": [19, 23, 29, 32], "ottawa": 19, "ohio": 19, "covid": 19, "york": 19, "27t17": 19, "counti": 19, "exposur": 19, "risk": 19, "tracker": 19, "coronaviru": 19, "ncov": 19, "death": 19, "fatal": 19, "diseas": 19, "promo": 19, "1585539358901": 19, "articlelarg": 19, "v274": 19, "0cff645fbb74c21791568b78a888967d": 19, "0774069": 19, "744247": 19, "hopewel": 19, "virginia": 19, "1585539536519": 19, "v271": 19, "butt": 19, "nebraska": 19, "1585539237156": 19, "v281": 19, "stearn": 19, "minnesota": 19, "1585539172701": 19, "v282": 19, "benton": 19, "iowa": 19, "1585539039190": 19, "v286": 19, "5080": 19, "hodgeman": 19, "kansa": 19, "1585539054298": 19, "v285": 19, "f53301c8286f9bf59ef297f0232dcfc1": 19, "914107": 19, "995323": 19, "5081": 19, "miller": 19, "georgia": 19, "1585538956622": 19, "v290": 19, "5082": 19, "elect": 19, "west": 19, "hous": 19, "district": 19, "03t17": 19, "congression": 19, "david": 19, "mckinlei": 19, "natali": 19, "cline": 19, "presidenti": 19, "eln": 19, "race": [19, 28], "1winner": 19, "mckinleyd": 19, "5083": 19, "senat": 19, "susan": 19, "collin": 19, "defeat": 19, "sara": 19, "gideon": 19, "senatewinn": 19, "collinss": 19, "5084": 19, "randolph": 19, "missouri": 19, "1585539206866": 19, "wired_video": 19, "wire": 19, "2955": 19, "video_thumbnail_loc": 19, "video_titl": 19, "video_descript": 19, "video_content_loc": 19, "video_dur": 19, "video_publication_d": 19, "video_expiration_d": 19, "autocomplet": [19, 32], "inverview": 19, "owen": 19, "wilson": 19, "answer": 19, "dwgyu36up6iuz": 19, "cloudfront": 19, "heru80fdn": 19, "c_fill": 19, "d_placeholder_thescen": 19, "fl_progress": 19, "g_face": 19, "h_180": 19, "q_80": 19, "w_320": 19, "v1644595412": 19, "wired_autocomplet": 19, "interview": 19, "internet": 19, "himself": [19, 26], "nose": 19, "ben": 19, "stiller": 19, "anderson": 19, "skateboard": 19, "dp8hsntg6do36": 19, "62067f085577c277dd9acf42": 19, "39687acb": 19, "505b": 19, "4c69": 19, "94f1": 19, "afaa7cb5e636low": 19, "mp4": 19, "645": 19, "11t17": 19, "90b11f47f8b2ab57cb180cbd3c6f06f9": 19, "86199": 19, "841851": 19, "samsung": 19, "s22": 19, "v1644418652": 19, "wired_wir": 19, "ultra": 19, "julian": 19, "chokkattu": 19, "editor": 19, "walk": 19, "6203cd7b5577c23d19622259": 19, "fe546b9b": 19, "a320": 19, "4883": 19, "9cbd": 19, "0d790f23c36dlow": 19, "184": 19, "10t17": 19, "galaxi": 19, "v1644381627": 19, "wired_first": 19, "debut": 19, "tablet": 19, "newest": [19, 28], "620345a15577c23d46622256": 19, "d74930cf": 19, "11e1": 19, "466e": 19, "b023": 19, "1d9b91664204low": 19, "373": 19, "09t15": 19, "reinvent": 19, "v1642801328": 19, "wired_reinv": 19, "lab": 19, "aw": 19, "seattl": 19, "seahawk": 19, "win": [19, 26], "teach": 19, "swami": 19, "sivasubramanian": 19, "vp": 19, "ai": 19, "team": 19, "nfl": 19, "captur": [19, 32], "strateg": [19, 32], "619bd9be1d75db41adee6b58": 19, "d4889b15": 19, "4f34": 19, "41b0": 19, "b935": 19, "0c79465a9793low": 19, "09t13": 19, "seth": 19, "rogen": 19, "v1644335726": 19, "wired_seth": 19, "pam": 19, "amp": 19, "tommi": 19, "potteri": 19, "celebr": 19, "christma": 19, "duti": 19, "premier": 19, "februari": [19, 28], "hulu": 19, "march": 19, "6201430a1d75db06ae1f62e8": 19, "488ed635": 19, "91d0": 19, "4281": 19, "9e64": 19, "34be9bf74f00low": 19, "635": 19, "08t17": 19, "2950": 19, "genr": 19, "2951": 19, "tv": [19, 28], "2952": 19, "2953": 19, "promot": 19, "2954": 19, "thread": [19, 28, 29], "faster": [19, 29], "attack": 19, "sitemap_df": 19, "changefreq": 19, "prioriti": 19, "customiz": 20, "configur": [20, 28], "flexibl": [20, 32], "simplest": [20, 25], "reachabl": 20, "my_output_fil": 20, "affect": 20, "indepent": 20, "overwrit": [20, 29], "otherwis": [20, 23, 25, 26], "crash": 20, "sitename_crawl_yyyy_mm_dd": 20, "remark": 20, "rquest": 20, "card": [20, 23, 29], "jsonld_1_": 20, "item_a": 20, "item_b": 20, "whichev": [20, 25, 29, 32], "links_url": [20, 29], "links_text": [20, 29], "links_nofollow": [20, 29], "nofllow": 20, "tell": 20, "nav_links_url": 20, "header_links_url": 20, "footer_links_url": 20, "body_text": [20, 29], "p": [20, 29], "span": [20, 29], "li": [20, 29], "amount": [20, 25, 26], "took": 20, "download_timout": 20, "sec": 20, "crossorigin": [20, 29], "ismap": [20, 29], "longdesc": [20, 29], "referrerpolici": [20, 29], "srcset": [20, 29], "usemap": [20, 29], "global": [20, 23, 29], "draggabl": [20, 29], "third": [20, 23, 26], "truncat": 20, "site_crawl": 20, "links_href": 20, "leas": 20, "blob": 20, "resp_headers_access": 20, "request_headers_cooki": 20, "camp": 20, "readm": 20, "kw_": [20, 29, 32], "wed": 20, "720a8581": 20, "501e": 20, "0043": 20, "01a2": 20, "2e77d2": 20, "unlock": 20, "blockblob": 20, "web00007c": 20, "includesubdo": 20, "3600": 20, "ht": 20, "596daca7dbaa7e9": 20, "bud": 20, "02d86a3cea00007e9edb0cf2000000": 20, "xm": 20, "__cfduid": 20, "d76b68d148ddec1efd004": 20, "202": 20, "abil": [20, 28, 29], "4f7bea3b": 20, "701e": 20, "0039": 20, "3f44": 20, "2f1d9f": 20, "web00007h": 20, "596daca9bcab7e9": 20, "02d86a3e0e00007e9edb0d72000000": 20, "98b729fa": 20, "e01": 20, "00bf": 20, "24c3": 20, "2e494d": 20, "596daca9bf26d423": 20, "02d86a3e150000d423322742000000": 20, "submodul": [20, 29, 30, 31], "advertoo": 20, "7a28ef3b": 20, "801e": 20, "00c2": 20, "2ed585": 20, "web000079": 20, "596daca9bddb7ec2": 20, "02d86a3e1300007ec2a808a2000000": 20, "copyright": [20, 21], "eli": 20, "_static": 20, "75911c9e": 20, "201e": 20, "00e6": 20, "34c3": 20, "2e4ccb": 20, "web00007g": 20, "596daca9b91fd437": 20, "02d86a3e140000d437b81532000000": 20, "url_build": 20, "pyt": 20, "d99f2368": 20, "c01e": 20, "006f": 20, "18c3": 20, "2ef5ef": 20, "web00007a": 20, "596dacbbb8afd437": 20, "02d86a494f0000d437b828b2000000": 20, "pyth": 20, "85855c48": 20, "00ce": 20, "13c3": 20, "2e3b74": 20, "596dacbd980bd423": 20, "02d86a4a7f0000d423323b42000000": 20, "ad_": [20, 32], "b0aef497": 20, "004a": 20, "1647": 20, "2f6d5c": 20, "web00007k": 20, "596dacbd980cd423": 20, "02d86a4a7f0000d423209db2000000": 20, "9dfdd38a": 20, "101e": 20, "00a1": 20, "7ec3": 20, "2e93a0": 20, "596dacbd99847ec2": 20, "02d86a4a7f00007ec2a811f2000000": 20, "emo": 20, "2ad504a1": 20, "000b": 20, "03c3": 20, "2e454f": 20, "596dacbd9fb97e9": 20, "02d86a4a7f00007e9edb13a2000000": 20, "ran": 20, "got": 20, "richer": 20, "perspect": [20, 25, 26], "bounc": [20, 26], "traffic": [20, 23, 24], "export": 20, "addition": [20, 23], "pretti": 20, "name_1": 20, "selector_1": 20, "name_2": 20, "selector_2": 20, "reli": 20, "slectorgadget": 20, "selecotr": 20, "tricki": 20, "documentaion": 20, "w3c": 20, "decrib": 20, "sidebar": [20, 29], "toctre": 20, "l1": 20, "attr": 20, "sidebar_link": 20, "sidebar_links_url": 20, "shoe": [20, 26], "model_a": 20, "model_b": 20, "unexpect": 20, "rememb": 20, "granular": 20, "potenti": [20, 23], "region": [20, 23, 28], "regard": [20, 26], "further": [20, 25, 26, 32], "simultan": 20, "lower": 20, "pressur": 20, "deep": 20, "fraction": 20, "strongli": [20, 23], "yourself": [20, 26], "confid": 20, "fine": 20, "explan": 20, "outpuf_fil": 20, "attempt": 20, "product2": 20, "anotherexampl": 20, "anotherexmapl": 20, "author_url": 20, "contributornameid": 20, "spaci": [21, 29], "mine": [21, 26, 27, 28, 32], "footnot": 21, "explosionai": 21, "ug": 21, "haftungsbeschr\u00e4nkt": 21, "gmbh": 21, "matthew": 21, "honnib": 21, "complic": 23, "unnest": 23, "nest": [23, 28], "influenti": 23, "credibl": 23, "signatur": 23, "dashboard": [23, 32], "auth_param": 23, "app_kei": [23, 29], "your_app_kei": 23, "app_secret": [23, 29], "your_app_secret": 23, "set_auth_param": 23, "oauth_token": [23, 29], "oauth_token_secret": [23, 29], "your_oauth_token": 23, "your_oauth_token_secret": 23, "python_tweet": 23, "tweet_mod": 23, "140": 23, "prepend": [23, 25], "tweet_": 23, "user_": 23, "func": 23, "get_application_rate_limit_statu": 23, "consumed_onli": 23, "rate_limit_statu": 23, "get_available_trend": 23, "trend": [23, 26, 32], "get_favorit": 23, "user_id": 23, "screen_nam": 23, "since_id": 23, "max_id": 23, "include_ent": 23, "whom": [23, 26], "screen": 23, "greater": 23, "forc": 23, "oldest": 23, "older": 23, "node": 23, "omit": 23, "engag": 23, "get_followers_id": 23, "cursor": 23, "stringify_id": 23, "semi": 23, "caus": [23, 29], "broken": 23, "5000": 23, "guarante": 23, "suspend": 23, "previous_cursor": 23, "next_cursor": 23, "environ": 23, "get_followers_list": 23, "skip_statu": 23, "include_user_ent": 23, "status": 23, "get_friends_id": 23, "friend": 23, "get_friends_list": 23, "get_home_timelin": 23, "trim_us": 23, "exclude_repli": 23, "retweet": [23, 26], "timelin": 23, "numer": [23, 28], "prevent": [23, 29], "repli": [23, 28], "home_timelin": 23, "get_list_memb": 23, "list_id": 23, "owner_screen_nam": 23, "owner_id": 23, "member": 23, "get_list_membership": 23, "filter_to_owned_list": 23, "disambigu": 23, "begin": [23, 27, 29], "membership": 23, "get_list_status": 23, "include_rt": 23, "ON": 23, "varieti": 23, "discreet": 23, "user_ment": 23, "nativ": 23, "stream": [23, 32], "ident": 23, "represent": 23, "get_list_subscrib": 23, "subscrib": [23, 28], "opt": 23, "futur": [23, 28], "truestatus": 23, "get_list_subscript": 23, "obtain": [23, 25, 26], "subscript": [23, 28], "get_mentions_timelin": 23, "mentions_timelin": 23, "get_place_trend": [23, 29], "woeid": 23, "yahoo": 23, "earth": 23, "get_retweeters_id": 23, "get_retweet": 23, "get_supported_languag": 23, "get_user_timelin": 23, "strip": [23, 26, 27], "toward": [23, 26], "maxim": 23, "slice": 23, "user_timelin": 23, "lookup_statu": 23, "include_ext_alt_text": 23, "include_card_uri": 23, "hydrat": 23, "cannot": [23, 26], "null": 23, "pair": 23, "ext_alt_text": 23, "card_uri": 23, "lookup_us": 23, "encourag": 23, "make_datafram": 23, "retweeted_of_m": 23, "retweets_of_m": 23, "geocod": 23, "result_typ": 23, "lat": 23, "lon": 23, "dist": 23, "radiu": 23, "preferenti": 23, "geotag": 23, "mile": 23, "directli": 23, "distinct": 23, "detect": 23, "effort": 23, "ja": 23, "prefer": 23, "mix": [23, 25, 28], "dd": 23, "hate": 23, "beer": 23, "root": 23, "haiku": 23, "interior": 23, "nasa": 23, "astronaut": 23, "puppi": 23, "native_video": 23, "amplifi": 23, "periscop": 23, "vine": 23, "instagram": 23, "twimg": 23, "pic": 23, "hilari": 23, "anywher": [23, 26], "superhero": 23, "scari": 23, "attitud": 23, "search_us": 23, "access_token": 23, "token_typ": 23, "bearer": 23, "oauth_vers": 23, "api_vers": 23, "client_arg": 23, "auth_endpoint": 23, "twython": [23, 29], "starting_out": 23, "show_list": 23, "show_owned_list": 23, "ownership": 23, "url_utm_ga": [24, 29], "utm_sourc": 24, "utm_medium": 24, "utm_campaign": 24, "utm_cont": 24, "utm_term": 24, "utm": [24, 29], "banner": 24, "summer_promo": 24, "20pct_off": 24, "differenti": 24, "728x90": 24, "mpu": 24, "square_bann": 24, "bid": 24, "mysit": 24, "THE": 24, "2anam": 24, "5e": 24, "fairli": [25, 32], "situat": 25, "enhanc": 25, "path_1": 25, "path_2": 25, "frag_1": 25, "frag_2": 25, "path_3": 25, "sm": 25, "query_color": 25, "query_pric": 25, "query_s": 25, "elabor": 25, "decod": 25, "self": 25, "explanatori": 25, "blog": 25, "previou": [25, 28, 29], "unalign": 25, "popul": 25, "na": [25, 29], "hash": 25, "query_": 25, "colliss": 25, "unlik": 25, "delimit": [25, 27], "unusu": 25, "product1": 25, "sens": [25, 26], "renam": 25, "inconsist": 25, "topic1": 25, "topic2": 25, "artilc": 25, "yout": 25, "distort": 25, "role": [25, 28], "topic_1": 25, "topic_2": 25, "align": 25, "ouput_fil": 25, "urldf": 25, "corpu": 26, "accomplish": [26, 32], "word_frequ": [26, 27, 29, 32], "sequenc": [26, 32], "dot": [26, 27], "quotat": 26, "whatev": [26, 32], "sale": 26, "quantifi": 26, "bag": 26, "half": 26, "revenu": 26, "million": 26, "hidden": 26, "ppc": 26, "num_list": [26, 29], "experi": 26, "rm_word": 26, "ignor": 26, "possibli": 26, "extra_info": 26, "abs_freq": [26, 29], "wtd_freq": [26, 29], "rel_valu": [26, 29], "essenti": [26, 27, 32], "multipli": 26, "abs_perc": 26, "abs_perc_cum": 26, "wtd_freq_perc": 26, "wtd_freq_perc_cum": 26, "afterward": 26, "alon": 26, "among": 26, "amongst": 26, "anyhow": 26, "anyon": 26, "becam": 26, "beforehand": 26, "behind": 26, "besid": 26, "beyond": 26, "eight": 26, "eleven": 26, "elsewher": 26, "everywher": 26, "fifti": 26, "former": 26, "formerli": 26, "forti": [26, 32], "henc": 26, "her": 26, "hereaft": 26, "herebi": 26, "herein": 26, "hereupon": 26, "herself": 26, "him": 26, "inde": 26, "latter": 26, "latterli": 26, "me": [26, 27], "meanwhil": 26, "moreov": 26, "move": 26, "myself": 26, "neither": 26, "nevertheless": 26, "nine": 26, "nobodi": 26, "noon": 26, "nor": 26, "nowher": 26, "often": 26, "onto": 26, "perhap": 26, "rather": 26, "seriou": 26, "sixti": 26, "somehow": 26, "someon": 26, "somewher": [26, 32], "themselv": [26, 29], "thenc": 26, "thereaft": 26, "therebi": [26, 28], "therein": 26, "thereupon": 26, "throughout": 26, "thru": 26, "twelv": 26, "upon": 26, "whenc": 26, "whenev": 26, "whereaft": 26, "wherea": 26, "wherebi": 26, "wherein": 26, "whereupon": 26, "wherev": [26, 29], "whither": 26, "whoever": 26, "yourselv": 26, "blown": 26, "ngram": 26, "metric": 26, "abs_wtd_df": 26, "banana": 26, "kiwi": 26, "mango": 26, "250": 26, "300": 26, "beat": 26, "text_list2": 26, "222222": 26, "333333": 26, "111111": 26, "266667": 26, "600000": 26, "666667": 26, "200000": 26, "800000": 26, "888889": 26, "133333": 26, "933333": 26, "000000": 26, "066667": 26, "word_token": [27, 29], "trim": 27, "quot": [27, 29], "parenthes": 27, "trail": [27, 29], "insid": 27, "activities_list": 28, "criteria": 28, "child": 28, "quota": 28, "cost": 28, "contentdetail": 28, "uniqu": [28, 29], "deprec": [28, 29], "unsign": 28, "earliest": 28, "8601": 28, "ddthh": 28, "ss": 28, "sz": 28, "captions_list": 28, "videoid": 28, "channel_sections_list": 28, "channelsect": 28, "i18nlanguag": 28, "channels_list": 28, "categoryid": 28, "forusernam": 28, "managedbym": 28, "mysubscrib": 28, "auditdetail": 28, "brandingset": 28, "contentownerdetail": 28, "invideopromot": 28, "topicdetail": 28, "comment_threads_list": 28, "allthreadsrelatedtochannelid": 28, "moderationstatu": 28, "searchterm": 28, "textformat": 28, "commentthread": 28, "heldforreview": 28, "await": 28, "likelyspam": 28, "classifi": 28, "spam": 28, "plaintext": 28, "plain": 28, "comments_list": 28, "parentid": 28, "guide_categories_list": [28, 29], "guidecategori": 28, "i18n_languages_list": 28, "en_u": 28, "i18n_regions_list": 28, "i18nregion": 28, "playlist_items_list": 28, "playlistid": 28, "playlistitem": 28, "resourceid": 28, "playlists_list": 28, "onbehalfofcontentownerchannel": 28, "timecr": 28, "player": 28, "action": [28, 29], "curat": 28, "music": 28, "04rlf": 28, "02mscn": 28, "christian": 28, "0ggq0m": 28, "classic": 28, "01lyv": 28, "02lkt": 28, "electron": 28, "0glt670": 28, "hip": 28, "hop": 28, "05rwpb": 28, "03_d0": 28, "jazz": 28, "028sqc": 28, "asia": 28, "0g293": 28, "america": 28, "064t9": 28, "pop": 28, "06cqb": 28, "regga": 28, "06j6l": 28, "rhythm": 28, "06by7": 28, "rock": 28, "0gywn": 28, "soul": 28, "game": 28, "0bzvm2": 28, "025zzc": 28, "02ntfj": 28, "adventur": 28, "0b1vjn": 28, "casual": 28, "02hygl": 28, "04q1x3q": 28, "puzzl": 28, "01sjng": 28, "0403l3g": 28, "021bp2": 28, "simul": 28, "022dc6": 28, "03hf_rm": 28, "06ntj": 28, "0jm_": 28, "american": 28, "018jz": 28, "basebal": 28, "018w8": 28, "01cgz": 28, "09xp_": 28, "cricket": 28, "02vx4": 28, "037hz": 28, "golf": 28, "03tmr": 28, "hockei": 28, "01h7lh": 28, "martial": 28, "0410tth": 28, "motorsport": 28, "07bs0": 28, "tenni": 28, "07_53": 28, "volleybal": 28, "entertain": 28, "02jjt": 28, "09kqc": 28, "humor": 28, "02vxn": 28, "05qjc": 28, "066wd": 28, "profession": 28, "wrestl": 28, "0f2f9": 28, "lifestyl": 28, "019_rr": 28, "032tl": 28, "fashion": 28, "027x7n": 28, "02wbm": 28, "03glg": 28, "hobbi": 28, "068hy": 28, "pet": 28, "041xxh": 28, "physic": 28, "attract": 28, "beauti": 28, "07c1v": 28, "07bxq": 28, "tourism": 28, "07yv9": 28, "vehicl": 28, "societi": 28, "098wr": 28, "09s1f": 28, "0kt51": 28, "01h6rj": 28, "militari": 28, "05qt0": 28, "06bvp": 28, "religion": 28, "01k8wb": 28, "channelplaylistvideo": 28, "subscriptions_list": 28, "myrecentsubscrib": 28, "forchannelid": 28, "subscribersnippet": 28, "subscription_order_relev": 28, "unread": 28, "video_categories_list": 28, "videocategori": 28, "videos_list": 28, "chart": 28, "myrat": 28, "maxheight": 28, "maxwidth": 28, "filedetail": 28, "livestreamingdetail": 28, "processingdetail": 28, "recordingdetail": 28, "mostpopular": 28, "dislik": 28, "embedhtml": 28, "emb": 28, "appropri": 28, "violat": 28, "8192": 28, "narrow": 28, "subpackag": [29, 30, 31], "log_date_format": 29, "relatedsit": 29, "v15": 29, "contribut": 29, "danielp77": 29, "offlin": 29, "preserv": 29, "autothrottl": 29, "minim": 29, "fillna": 29, "ffill": 29, "andypayn": 29, "newlin": 29, "clarifi": 29, "thebe": 29, "sphinx": 29, "deprac": 29, "skip_url_param": 29, "versatil": 29, "bad": 29, "timeout": 29, "sitemapindex": 29, "mb": 29, "024x1": 29, "anymor": 29, "jsonld_error": 29, "resp_meta_": 29, "preced": 29, "url_redirected_to": 29, "links_frag": 29, "invalid": 29, "stricter": 29, "unifi": 29, "element_1": 29, "element_2": 29, "drop": 29, "slight": 29, "relayout": 29, "clarif": 29, "robotstxt": 29, "cse": 29, "returnd": 29, "sitemap_download": 29, "variabl": 29, "expand": 29, "pagemap": 29, "df": 29, "top_emoji_categori": 29, "top_emoji_sub_categori": 29, "db": 29, "simpler": 29, "__init__": 29, "ve": 29, "punctuat": 29, "pagin": [29, 32], "reflect": 29, "lenght": 29, "rewrit": 29, "_dict_product": 29, "msg": 29, "implement": 29, "repons": 29, "town": 29, "wrap": 29, "pand": 29, "cheat": 29, "sheet": [29, 32], "coverag": 29, "releas": 29, "pypi": 29, "placehold": [29, 32], "feedback": 30, "pip3": 30, "unreleas": 30, "2023": 30, "announc": 32, "scientist": 32, "manipul": 32, "visual": 32, "sophist": 32, "algorithm": 32, "cool": 32, "spent": 32, "wrangl": 32, "stitch": 32, "124": 32, "hopefulli": 32, "pick": 32, "excel": 32, "formula": 32, "unix": 32, "doug": 32, "mcilroi": 32, "univers": 32, "aim": 32, "unrel": 32, "workflow": 32, "practition": 32, "plotli": 32, "librari": 32, "tabular": 32, "kept": 32, "modular": 32, "coder": 32, "promis": 32, "deliveri": 32, "didn": 32, "headlin": 32, "datacamp": 32, "semrush": 32, "comprehens": 32, "render": 32, "creation": 32, "outreach": 32, "built": 32, "megabyt": 32, "monitor": 32, "parser": 32, "notebook": 32, "tackl": 32, "bloomberg": 32, "click": 32, "divers": 32, "3k": 32, "conveni": 32, "introductori": 32, "clean": 32, "131k": 32, "european": 32, "url_": 32, "emoji_": 32, "_to_df": 32}, "objects": {"": [[0, 0, 0, "-", "advertools"]], "advertools": [[1, 0, 0, "-", "ad_create"], [2, 0, 0, "-", "ad_from_string"], [3, 0, 0, "-", "cli"], [5, 0, 0, "-", "code_recipes"], [7, 0, 0, "-", "crawlytics"], [8, 0, 0, "-", "emoji"], [9, 0, 0, "-", "extract"], [10, 0, 0, "-", "header_spider"], [11, 0, 0, "-", "image_spider"], [12, 0, 0, "-", "knowledge_graph"], [13, 0, 0, "-", "kw_generate"], [14, 0, 0, "-", "logs"], [15, 0, 0, "-", "regex"], [16, 0, 0, "-", "reverse_dns_lookup"], [17, 0, 0, "-", "robotstxt"], [18, 0, 0, "-", "serp"], [19, 0, 0, "-", "sitemaps"], [20, 0, 0, "-", "spider"], [21, 0, 0, "-", "stopwords"], [23, 0, 0, "-", "twitter"], [24, 0, 0, "-", "url_builders"], [25, 0, 0, "-", "urlytics"], [26, 0, 0, "-", "word_frequency"], [27, 0, 0, "-", "word_tokenize"], [28, 0, 0, "-", "youtube"]], "advertools.ad_create": [[1, 1, 1, "", "ad_create"]], "advertools.ad_from_string": [[2, 1, 1, "", "ad_from_string"]], "advertools.cli": [[4, 0, 0, "-", "cli"]], "advertools.code_recipes": [[6, 0, 0, "-", "spider_strategies"]], "advertools.crawlytics": [[7, 1, 1, "", "images"], [7, 1, 1, "", "jl_subset"], [7, 1, 1, "", "jl_to_parquet"], [7, 1, 1, "", "links"], [7, 1, 1, "", "parquet_columns"], [7, 1, 1, "", "redirects"]], "advertools.emoji": [[8, 1, 1, "", "emoji_search"], [8, 1, 1, "", "extract_emoji"]], "advertools.extract": [[9, 1, 1, "", "extract"], [9, 1, 1, "", "extract_currency"], [9, 1, 1, "", "extract_exclamations"], [9, 1, 1, "", "extract_hashtags"], [9, 1, 1, "", "extract_intense_words"], [9, 1, 1, "", "extract_mentions"], [9, 1, 1, "", "extract_numbers"], [9, 1, 1, "", "extract_questions"], [9, 1, 1, "", "extract_urls"], [9, 1, 1, "", "extract_words"]], "advertools.header_spider": [[10, 2, 1, "", "HeadersSpider"], [10, 1, 1, "", "crawl_headers"]], "advertools.header_spider.HeadersSpider": [[10, 3, 1, "", "custom_settings"], [10, 4, 1, "", "errback"], [10, 3, 1, "", "name"], [10, 4, 1, "", "parse"], [10, 4, 1, "", "start_requests"]], "advertools.image_spider": [[11, 2, 1, "", "AdvImagesPipeline"], [11, 2, 1, "", "ImageSpider"], [11, 2, 1, "", "ImgItem"], [11, 1, 1, "", "crawl_images"], [11, 1, 1, "", "summarize_crawled_imgs"]], "advertools.image_spider.AdvImagesPipeline": [[11, 4, 1, "", "file_path"]], "advertools.image_spider.ImageSpider": [[11, 3, 1, "", "custom_settings"], [11, 3, 1, "", "include_img_regex"], [11, 3, 1, "", "name"], [11, 4, 1, "", "parse"], [11, 4, 1, "", "start_requests"]], "advertools.image_spider.ImgItem": [[11, 3, 1, "", "fields"]], "advertools.knowledge_graph": [[12, 1, 1, "", "knowledge_graph"]], "advertools.kw_generate": [[13, 1, 1, "", "kw_broad"], [13, 1, 1, "", "kw_exact"], [13, 1, 1, "", "kw_generate"], [13, 1, 1, "", "kw_modified"], [13, 1, 1, "", "kw_neg_broad"], [13, 1, 1, "", "kw_neg_exact"], [13, 1, 1, "", "kw_neg_phrase"], [13, 1, 1, "", "kw_phrase"]], "advertools.logs": [[14, 1, 1, "", "crawllogs_to_df"], [14, 1, 1, "", "logs_to_df"]], "advertools.reverse_dns_lookup": [[16, 1, 1, "", "reverse_dns_lookup"]], "advertools.robotstxt": [[17, 1, 1, "", "robotstxt_test"], [17, 1, 1, "", "robotstxt_to_df"]], "advertools.serp": [[18, 1, 1, "", "serp_goog"], [18, 1, 1, "", "serp_youtube"], [18, 1, 1, "", "set_logging_level"], [18, 1, 1, "", "youtube_channel_details"], [18, 1, 1, "", "youtube_video_details"]], "advertools.sitemaps": [[19, 1, 1, "", "sitemap_to_df"]], "advertools.spider": [[20, 1, 1, "", "crawl"]], "advertools.twitter": [[23, 1, 1, "", "authenticate"], [23, 1, 1, "", "get_application_rate_limit_status"], [23, 1, 1, "", "get_available_trends"], [23, 1, 1, "", "get_favorites"], [23, 1, 1, "", "get_followers_ids"], [23, 1, 1, "", "get_followers_list"], [23, 1, 1, "", "get_friends_ids"], [23, 1, 1, "", "get_friends_list"], [23, 1, 1, "", "get_home_timeline"], [23, 1, 1, "", "get_list_members"], [23, 1, 1, "", "get_list_memberships"], [23, 1, 1, "", "get_list_statuses"], [23, 1, 1, "", "get_list_subscribers"], [23, 1, 1, "", "get_list_subscriptions"], [23, 1, 1, "", "get_mentions_timeline"], [23, 1, 1, "", "get_place_trends"], [23, 1, 1, "", "get_retweeters_ids"], [23, 1, 1, "", "get_retweets"], [23, 1, 1, "", "get_supported_languages"], [23, 1, 1, "", "get_user_timeline"], [23, 1, 1, "", "lookup_status"], [23, 1, 1, "", "lookup_user"], [23, 1, 1, "", "make_dataframe"], [23, 1, 1, "", "retweeted_of_me"], [23, 1, 1, "", "search"], [23, 1, 1, "", "search_users"], [23, 1, 1, "", "set_auth_params"], [23, 1, 1, "", "show_lists"], [23, 1, 1, "", "show_owned_lists"]], "advertools.url_builders": [[24, 1, 1, "", "url_utm_ga"]], "advertools.urlytics": [[25, 1, 1, "", "url_to_df"]], "advertools.word_frequency": [[26, 1, 1, "", "word_frequency"]], "advertools.word_tokenize": [[27, 1, 1, "", "word_tokenize"]], "advertools.youtube": [[28, 1, 1, "", "activities_list"], [28, 1, 1, "", "captions_list"], [28, 1, 1, "", "channel_sections_list"], [28, 1, 1, "", "channels_list"], [28, 1, 1, "", "comment_threads_list"], [28, 1, 1, "", "comments_list"], [28, 1, 1, "", "guide_categories_list"], [28, 1, 1, "", "i18n_languages_list"], [28, 1, 1, "", "i18n_regions_list"], [28, 1, 1, "", "playlist_items_list"], [28, 1, 1, "", "playlists_list"], [28, 1, 1, "", "search"], [28, 1, 1, "", "subscriptions_list"], [28, 1, 1, "", "video_categories_list"], [28, 1, 1, "", "videos_list"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"]}, "titleterms": {"advertool": [0, 3, 4, 5, 29, 30, 31, 32], "packag": [0, 5], "subpackag": 0, "submodul": [0, 5], "modul": [0, 3, 5, 7], "content": [0, 5, 30, 32], "creat": [1, 2], "ad": [1, 2], "larg": [1, 7, 12, 17, 25], "scale": [1, 12, 17, 32], "us": [2, 4, 6, 12], "long": 2, "descript": 2, "text": [2, 4, 8, 9, 26, 30, 32], "top": 2, "down": [2, 6], "approach": [2, 17, 20, 32], "googl": [2, 12, 18, 20], "facebook": 2, "feed": 2, "instant": 2, "articl": [2, 20], "cli": [3, 4], "command": 4, "line": 4, "interfac": 4, "convert": 4, "robot": [4, 6, 17], "txt": [4, 6, 17], "file": [4, 7, 11, 14, 17], "list": [4, 6, 9, 20], "url": [4, 20, 24, 25], "tabl": [4, 30], "csv": 4, "format": [4, 14], "download": [4, 11, 19], "pars": [4, 14, 19, 25], "save": [4, 6], "an": 4, "xml": [4, 19], "sitemap": [4, 19], "split": [4, 25], "compon": 4, "scheme": 4, "netloc": 4, "path": [4, 25], "queri": [4, 20, 25], "etc": 4, "crawl": [4, 6, 7, 14, 20], "known": 4, "head": 4, "method": 4, "compress": [4, 7], "log": [4, 6, 14, 29, 30], "datafram": [4, 14], "parquet": [4, 7], "perform": 4, "revers": [4, 16], "dn": [4, 16], "lookup": [4, 16], "ip": 4, "address": 4, "gener": [4, 13], "sem": [4, 13, 30, 32], "keyword": [4, 13], "suppli": 4, "product": [4, 30, 32], "intent": 4, "word": [4, 26, 27], "get": [4, 8], "stopword": [4, 21], "select": 4, "languag": [4, 21], "count": [4, 26], "option": 4, "weight": [4, 26], "number": [4, 6, 9, 25], "search": [4, 8, 18, 20], "emoji": [4, 8, 9], "regex": [4, 20], "extract": [4, 6, 8, 9, 15, 20], "structur": [4, 9, 15, 25], "entiti": [4, 9, 15], "from": [4, 6, 8, 9], "hashtag": [4, 9], "mention": [4, 9], "token": [4, 27], "document": 4, "phrase": 4, "tweet": 4, "desir": 4, "length": 4, "seo": [4, 6, 20, 30, 32], "crawler": [4, 11, 20], "code_recip": 5, "scrape": [6, 7], "strategi": 6, "recip": 6, "how": [6, 12, 14], "page": [6, 18, 20], "those": 6, "onli": 6, "mode": [6, 20], "can": 6, "i": 6, "websit": [6, 7], "includ": 6, "its": 6, "sub": 6, "domain": 6, "copi": 6, "my": 6, "audit": 6, "them": 6, "later": 6, "automat": 6, "stop": 6, "base": 6, "certain": 6, "condit": 6, "di": 6, "obei": 6, "rule": 6, "do": 6, "set": [6, 20], "user": [6, 17], "agent": [6, 17], "while": [6, 20], "control": 6, "concurr": 6, "request": 6, "slow": 6, "so": 6, "don": 6, "t": 6, "hit": 6, "server": 6, "too": 6, "hard": 6, "multipl": 6, "same": 6, "job": 6, "want": 6, "follow": [6, 20], "link": [6, 7, 20], "specifi": 6, "depth": 6, "paus": 6, "resum": 6, "make": 6, "sure": 6, "twice": 6, "proxi": 6, "chang": [6, 29, 30], "default": 6, "header": [6, 10], "xpath": [6, 20], "express": [6, 15], "custom": [6, 20], "analysi": [7, 14, 26, 30, 32], "analyz": [7, 8, 12, 14, 17, 19, 25], "imag": [7, 11], "redirect": 7, "handl": 7, "veri": 7, "explor": 7, "column": 7, "data": [7, 14, 20, 23, 28], "type": 7, "function": [7, 9, 14, 20, 23], "insight": 8, "currenc": 9, "1234567890\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u32ba\ud804\udc5b\ud800\udd0d\ud802\udcaa\u24f2\ud804\udc63\ud800\udd28\ud802\udd1b": 9, "question": 9, "\u0294": 9, "exclam": 9, "python": [10, 20], "statu": 10, "code": 10, "checker": 10, "respons": 10, "name": 11, "import": [12, 18], "knowledg": 12, "graph": 12, "result": [12, 18], "account": 12, "setup": 12, "": 12, "api": [12, 23, 28], "campaign": [13, 32], "run": 14, "logs_to_df": 14, "support": 14, "prepar": 14, "regular": [15, 19], "bulk": [16, 17], "test": 17, "tester": 17, "engin": 18, "serp": [18, 20], "youtub": [18, 28], "index": [19, 30], "new": [19, 20], "video": 19, "spider": 20, "discoveri": 20, "On": 20, "element": 20, "pre": 20, "determin": 20, "analyt": 20, "consol": 20, "css": 20, "selector": 20, "behavior": 20, "paramet": [20, 25], "pattern": 20, "addit": 20, "sever": 21, "survei": 22, "share": 22, "feedback": 22, "twitter": 23, "authent": 23, "builder": 24, "The": 25, "directori": 25, "absolut": 26, "v": 26, "frequenc": 26, "n": 27, "gram": 27, "unreleas": 29, "0": 29, "14": 29, "2": 29, "2024": 29, "02": 29, "24": 29, "1": 29, "21": 29, "18": 29, "13": 29, "5": 29, "2023": 29, "08": 29, "22": 29, "4": 29, "07": 29, "26": 29, "3": 29, "06": 29, "27": 29, "2022": 29, "09": 29, "30": 29, "05": 29, "11": 29, "10": 29, "12": 29, "2021": 29, "04": 29, "03": 29, "31": 29, "7": 29, "2020": 29, "6": 29, "25": 29, "23": 29, "9": 29, "19": 29, "8": 29, "2019": 29, "17": 29, "29": 29, "01": 29, "2018": 29, "onlin": [30, 32], "market": [30, 32], "tool": [30, 32], "social": [30, 32], "media": [30, 32], "indic": 30, "your": 32, "instal": 32, "philosophi": 32, "convent": 32}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"advertools package": [[0, "advertools-package"]], "Subpackages": [[0, "subpackages"]], "Submodules": [[0, "submodules"], [5, "submodules"]], "Module contents": [[0, "module-advertools"], [5, "module-advertools.code_recipes"]], "Create Ads on a Large Scale": [[1, "create-ads-on-a-large-scale"]], "Create Ads Using Long Descriptive Text (top-down approach)": [[2, "create-ads-using-long-descriptive-text-top-down-approach"]], "Google Text Ads": [[2, "google-text-ads"]], "Facebook Feed Ads": [[2, "facebook-feed-ads"]], "Facebook Instant Article Ad": [[2, "facebook-instant-article-ad"]], "advertools.cli module": [[3, "module-advertools.cli"]], "advertools Command Line Interface (CLI)": [[4, "advertools-command-line-interface-cli"]], "convert a robots.txt file (or list of file URLs) to a table in a CSV format": [[4, "convert-a-robots-txt-file-or-list-of-file-urls-to-a-table-in-a-csv-format"]], "download, parse, and save an XML sitemap to a table in a CSV file": [[4, "download-parse-and-save-an-xml-sitemap-to-a-table-in-a-csv-file"]], "split a list of URLs into their components: scheme, netloc, path, query, etc.": [[4, "split-a-list-of-urls-into-their-components-scheme-netloc-path-query-etc"]], "crawl a list of known URLs using the HEAD method": [[4, "crawl-a-list-of-known-urls-using-the-head-method"]], "parse, compress and convert a log file to a DataFrame in the .parquet format": [[4, "parse-compress-and-convert-a-log-file-to-a-dataframe-in-the-parquet-format"]], "perform a reverse DNS lookup on a list of IP addresses": [[4, "perform-a-reverse-dns-lookup-on-a-list-of-ip-addresses"]], "generate a table of SEM keywords by supplying a list of products and a list of intent words": [[4, "generate-a-table-of-sem-keywords-by-supplying-a-list-of-products-and-a-list-of-intent-words"]], "get stopwords of the selected language": [[4, "get-stopwords-of-the-selected-language"]], "get word counts of a text list optionally weighted by a number list": [[4, "get-word-counts-of-a-text-list-optionally-weighted-by-a-number-list"]], "search for emoji using a regex": [[4, "search-for-emoji-using-a-regex"]], "extract structured entities from a text list; emoji, hashtags, mentions": [[4, "extract-structured-entities-from-a-text-list-emoji-hashtags-mentions"]], "tokenize documents (phrases, keywords, tweets, etc) into token of the desired length": [[4, "tokenize-documents-phrases-keywords-tweets-etc-into-token-of-the-desired-length"]], "SEO crawler": [[4, "seo-crawler"]], "advertools.code_recipes package": [[5, "advertools-code-recipes-package"]], "\ud83d\udd77 SEO Crawling & Scraping: Strategies & Recipes": [[6, "seo-crawling-scraping-strategies-recipes"]], "How to crawl a list of pages, and those pages only (list mode)?": [[6, "how-to-crawl-a-list-of-pages-and-those-pages-only-list-mode"]], "How can I crawl a website including its sub-domains?": [[6, "how-can-i-crawl-a-website-including-its-sub-domains"]], "How can I save a copy of the logs of my crawl for auditing them later?": [[6, "how-can-i-save-a-copy-of-the-logs-of-my-crawl-for-auditing-them-later"]], "How can I automatically stop my crawl based on a certain condition?": [[6, "how-can-i-automatically-stop-my-crawl-based-on-a-certain-condition"]], "How can I (dis)obey robots.txt rules?": [[6, "how-can-i-dis-obey-robots-txt-rules"]], "How do I set my User-agent while crawling?": [[6, "how-do-i-set-my-user-agent-while-crawling"]], "How can I control the number of concurrent requests while crawling?": [[6, "how-can-i-control-the-number-of-concurrent-requests-while-crawling"]], "How can I slow down the crawling so I don't hit the websites' servers too hard?": [[6, "how-can-i-slow-down-the-crawling-so-i-don-t-hit-the-websites-servers-too-hard"]], "How can I set multiple settings to the same crawl job?": [[6, "how-can-i-set-multiple-settings-to-the-same-crawl-job"]], "I want to crawl a list of pages, follow links from those pages, but only to a certain specified depth": [[6, "i-want-to-crawl-a-list-of-pages-follow-links-from-those-pages-but-only-to-a-certain-specified-depth"]], "How do I pause/resume crawling, while making sure I don't crawl the same page twice?": [[6, "how-do-i-pause-resume-crawling-while-making-sure-i-don-t-crawl-the-same-page-twice"]], "How do I use a proxy while crawling?": [[6, "how-do-i-use-a-proxy-while-crawling"]], "How can I change the default request headers?": [[6, "how-can-i-change-the-default-request-headers"]], "XPath expressions for custom extraction": [[6, "xpath-expressions-for-custom-extraction"]], "Crawling and Scraping Analysis": [[7, "module-advertools.crawlytics"]], "Analyzing crawled images": [[7, "analyzing-crawled-images"]], "Analyzing links in a crawled website": [[7, "analyzing-links-in-a-crawled-website"]], "Analyzing the redirects of a crawled website": [[7, "analyzing-the-redirects-of-a-crawled-website"]], "Handling very large crawl files": [[7, "handling-very-large-crawl-files"]], "Compressing large crawl files": [[7, "compressing-large-crawl-files"]], "Exploring the columns and data types of parquet files": [[7, "exploring-the-columns-and-data-types-of-parquet-files"]], "Module functions": [[7, "module-functions"]], "Emoji: Extract, Analyze, and Get Insights": [[8, "emoji-extract-analyze-and-get-insights"]], "Emoji Search": [[8, "emoji-search"]], "Extract Emoji from Text": [[8, "extract-emoji-from-text"]], "Extract structured entities from text lists": [[9, "extract-structured-entities-from-text-lists"]], "Extract Functions": [[9, "extract-functions"]], "Extract #hashtags": [[9, "extract-hashtags"]], "Extract @mentions": [[9, "extract-mentions"]], "Extract Currency $ \u00a2 \u00a3 \u00a4 \u00a5 \u058f \u060b \u20b2 \u20b5 \u20b8 \u20b9\ufe69 \uffe0 \uffe1 \uffe5 \uffe6 \u20ba \u20bb \u20bc \u20bd \u20be \u20bf \ufdfc": [[9, "extract-currency"]], "Extract numbers 1234567890\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u32ba\ud804\udc5b\ud800\udd0d\ud802\udcaa\u24f2\ud804\udc63\ud800\udd28\ud802\udd1b": [[9, "extract-numbers-123456789045"]], "Extract questions ? \u00bf \u037e \u055e \u061f \u1367 \u1945 \u2047 \u2048 \u2049 \u2cfa \u2cfb \u2e2e \ua60f \ua6f7 \ufe16 \ufe56 \uff1f \ud804\udd43 \ud83a\udd5f \u0294 \u203d": [[9, "extract-questions"]], "Extract Exclamations ! \u00a1 \u055c \u07f9 \u1944 \u203c \u2048 \u2049 \ufe15 \ufe57 \uff01 \ud83a\udd5e": [[9, "extract-exclamations"]], "Extract Emoji \ud83d\ude02\ud83d\ude2d\ud83e\udd7a\ud83e\udd23\u2764\ufe0f\u2728\ud83d\ude4f\ud83d\ude0d": [[9, "extract-emoji"]], "\ud83d\udd77 Python Status Code Checker with Response Headers": [[10, "python-status-code-checker-with-response-headers"]], "Image Crawler and Downloader": [[11, "image-crawler-and-downloader"]], "Image file names": [[11, "image-file-names"]], "Import and Analyze Knowledge Graph Results on a Large Scale": [[12, "import-and-analyze-knowledge-graph-results-on-a-large-scale"]], "Account Setup": [[12, "account-setup"]], "How to use Google's Knowledge Graph API": [[12, "how-to-use-google-s-knowledge-graph-api"]], "Generate Keywords for SEM Campaigns": [[13, "generate-keywords-for-sem-campaigns"]], "Log File Analysis": [[14, "log-file-analysis"]], "How to run the logs_to_df() function:": [[14, "how-to-run-the-logs-to-df-function"]], "Supported Log Formats": [[14, "supported-log-formats"]], "Log File Analysis - Data Preparation": [[14, "log-file-analysis-data-preparation"]], "Parse and Analyze Crawl Logs in a Dataframe": [[14, "parse-and-analyze-crawl-logs-in-a-dataframe"]], "Regular Expressions for Extracting Structured Entities": [[15, "regular-expressions-for-extracting-structured-entities"]], "Reverse DNS Lookup in Bulk": [[16, "module-advertools.reverse_dns_lookup"]], "\ud83e\udd16 Analyze and Test robots.txt Files on a Large Scale": [[17, "analyze-and-test-robots-txt-files-on-a-large-scale"]], "Bulk robots.txt Tester": [[17, "bulk-robots-txt-tester"]], "User-agents": [[17, "user-agents"]], "robots.txt Testing Approach": [[17, "robots-txt-testing-approach"]], "Import Search Engine Results Pages (SERPs) for Google and YouTube": [[18, "import-search-engine-results-pages-serps-for-google-and-youtube"]], "Download, Parse, and Analyze XML Sitemaps": [[19, "download-parse-and-analyze-xml-sitemaps"]], "Sitemap Index": [[19, "sitemap-index"]], "Regular XML Sitemaps": [[19, "regular-xml-sitemaps"]], "News Sitemaps": [[19, "news-sitemaps"]], "Video Sitemaps": [[19, "video-sitemaps"]], "\ud83d\udd77 Python SEO Crawler / Spider": [[20, "python-seo-crawler-spider"]], "Discovery Crawling Approach": [[20, "discovery-crawling-approach"]], "Extracted On-Page SEO Elements": [[20, "extracted-on-page-seo-elements"]], "Pre-Determined Crawling Approach (List Mode)": [[20, "pre-determined-crawling-approach-list-mode"]], "SERP Data": [[20, "serp-data"]], "News Articles": [[20, "news-articles"]], "Google Analytics / Google Search Console": [[20, "google-analytics-google-search-console"]], "Custom Extraction with CSS and XPath Selectors": [[20, "custom-extraction-with-css-and-xpath-selectors"]], "Customizing the Crawling Behavior while Following Links": [[20, "customizing-the-crawling-behavior-while-following-links"]], "URL Query Parameters": [[20, "url-query-parameters"]], "URL Regex Patterns": [[20, "url-regex-patterns"]], "Spider Custom Settings and Additional Functionality": [[20, "spider-custom-settings-and-additional-functionality"]], "Stopwords in Several Languages": [[21, "stopwords-in-several-languages"]], "Stopword Languages": [[21, "stopword-languages"]], "Survey - share feedback": [[22, "survey-share-feedback"]], "Twitter Data API": [[23, "twitter-data-api"]], "Authentication": [[23, "authentication"]], "Functions": [[23, "functions"]], "URL Builders": [[24, "url-builders"]], "Split, Parse, and Analyze URL Structure": [[25, "split-parse-and-analyze-url-structure"]], "Query Parameters": [[25, "query-parameters"]], "The URL Path (Directories):": [[25, "the-url-path-directories"]], "Analyzing a large number of URLs": [[25, "analyzing-a-large-number-of-urls"]], "Text Analysis": [[26, "text-analysis"]], "Absolute and Weighted Word Count": [[26, "absolute-and-weighted-word-count"]], "Absolute vs Weighted Frequency": [[26, "absolute-vs-weighted-frequency"]], "Tokenize Words (N-grams)": [[27, "tokenize-words-n-grams"]], "YouTube Data API": [[28, "youtube-data-api"]], "advertools": [[29, "advertools"], [30, "advertools"], [31, "advertools"]], "Change Log - advertools": [[29, "change-log-advertools"]], "(UNRELEASED)": [[29, "unreleased"]], "0.14.2 (2024-02-24)": [[29, "id1"]], "0.14.1 (2024-02-21)": [[29, "id2"]], "0.14.0 (2024-02-18)": [[29, "id3"]], "0.13.5 (2023-08-22)": [[29, "id4"]], "0.13.4 (2023-07-26)": [[29, "id5"]], "0.13.3 (2023-06-27)": [[29, "id6"]], "0.13.2 (2022-09-30)": [[29, "id7"]], "0.13.1 (2022-05-11)": [[29, "id8"]], "0.13.0 (2022-02-10)": [[29, "id9"]], "0.12.3 (2021-11-27)": [[29, "id10"]], "0.12.0,1,2 (2021-11-27)": [[29, "id11"]], "0.11.1 (2021-04-09)": [[29, "id12"]], "0.11.0 (2021-03-31)": [[29, "id13"]], "0.10.7 (2020-09-18)": [[29, "id14"]], "0.10.6 (2020-06-30)": [[29, "id15"]], "0.10.5 (2020-06-14)": [[29, "id16"]], "0.10.4 (2020-06-07)": [[29, "id17"]], "0.10.3 (2020-06-03)": [[29, "id18"]], "0.10.2 (2020-05-25)": [[29, "id19"]], "0.10.1 (2020-05-23)": [[29, "id20"]], "0.10.0 (2020-05-21)": [[29, "id21"]], "0.9.1 (2020-05-19)": [[29, "id22"]], "0.9.0 (2020-04-03)": [[29, "id23"]], "0.8.1 (2020-02-08)": [[29, "id24"]], "0.8.0 (2020-02-02)": [[29, "id25"]], "0.7.3 (2019-04-17)": [[29, "id26"]], "0.7.2 (2019-03-29)": [[29, "id27"]], "0.7.1 (2019-03-26)": [[29, "id28"]], "0.7.0 (2019-03-26)": [[29, "id29"]], "0.6.0 (2019-02-11)": [[29, "id30"]], "0.5.3 (2019-01-31)": [[29, "id31"]], "0.5.2 (2018-12-01)": [[29, "id32"]], "0.5.1 (2018-11-06)": [[29, "id33"]], "0.5.0 (2018-11-04)": [[29, "id34"]], "0.4.1 (2018-10-13)": [[29, "id35"]], "0.4.0 (2018-10-08)": [[29, "id36"]], "0.3.0 (2018-08-14)": [[29, "id37"]], "0.2.0 (2018-07-06)": [[29, "id38"]], "0.1.0 (2018-07-02)": [[29, "id39"]], "Online marketing productivity and analysis tools": [[30, "online-marketing-productivity-and-analysis-tools"]], "SEM": [[30, null]], "SEO": [[30, null], [32, "seo"]], "Text & Content Analysis": [[30, null]], "Social Media": [[30, null], [32, "social-media"]], "Indices and tables": [[30, "indices-and-tables"]], "Index & Change Log": [[30, null]], "advertools: productivity & analysis tools to scale your online marketing": [[32, "advertools-productivity-analysis-tools-to-scale-your-online-marketing"]], "Installation": [[32, "installation"]], "Philosophy/approach": [[32, "philosophy-approach"]], "SEM Campaigns": [[32, "sem-campaigns"]], "Text & Content Analysis (for SEO & Social Media)": [[32, "text-content-analysis-for-seo-social-media"]], "Conventions": [[32, "conventions"]]}, "indexentries": {"advertools": [[0, "module-advertools"]], "module": [[0, "module-advertools"], [1, "module-advertools.ad_create"], [2, "module-advertools.ad_from_string"], [3, "module-advertools.cli"], [4, "module-advertools.cli.cli"], [5, "module-advertools.code_recipes"], [6, "module-advertools.code_recipes.spider_strategies"], [7, "module-advertools.crawlytics"], [8, "module-advertools.emoji"], [9, "module-advertools.extract"], [10, "module-advertools.header_spider"], [11, "module-advertools.image_spider"], [12, "module-advertools.knowledge_graph"], [13, "module-advertools.kw_generate"], [14, "module-advertools.logs"], [15, "module-advertools.regex"], [16, "module-advertools.reverse_dns_lookup"], [17, "module-advertools.robotstxt"], [18, "module-advertools.serp"], [19, "module-advertools.sitemaps"], [20, "module-advertools.spider"], [21, "module-advertools.stopwords"], [23, "module-advertools.twitter"], [24, "module-advertools.url_builders"], [25, "module-advertools.urlytics"], [26, "module-advertools.word_frequency"], [27, "module-advertools.word_tokenize"], [28, "module-advertools.youtube"]], "ad_create() (in module advertools.ad_create)": [[1, "advertools.ad_create.ad_create"]], "advertools.ad_create": [[1, "module-advertools.ad_create"]], "ad_from_string() (in module advertools.ad_from_string)": [[2, "advertools.ad_from_string.ad_from_string"]], "advertools.ad_from_string": [[2, "module-advertools.ad_from_string"]], "capitalize": [[2, "term-capitalize"]], "s": [[2, "term-s"]], "sep": [[2, "term-sep"]], "slots": [[2, "term-slots"]], "advertools.cli": [[3, "module-advertools.cli"]], "advertools.cli.cli": [[4, "module-advertools.cli.cli"]], "advertools.code_recipes": [[5, "module-advertools.code_recipes"]], "advertools.code_recipes.spider_strategies": [[6, "module-advertools.code_recipes.spider_strategies"]], "advertools.crawlytics": [[7, "module-advertools.crawlytics"]], "images() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.images"]], "jl_subset() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.jl_subset"]], "jl_to_parquet() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.jl_to_parquet"]], "links() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.links"]], "parquet_columns() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.parquet_columns"]], "redirects() (in module advertools.crawlytics)": [[7, "advertools.crawlytics.redirects"]], "advertools.emoji": [[8, "module-advertools.emoji"]], "emoji_search() (in module advertools.emoji)": [[8, "advertools.emoji.emoji_search"]], "extract_emoji() (in module advertools.emoji)": [[8, "advertools.emoji.extract_emoji"]], "advertools.extract": [[9, "module-advertools.extract"]], "extract() (in module advertools.extract)": [[9, "advertools.extract.extract"]], "extract_currency() (in module advertools.extract)": [[9, "advertools.extract.extract_currency"]], "extract_exclamations() (in module advertools.extract)": [[9, "advertools.extract.extract_exclamations"]], "extract_hashtags() (in module advertools.extract)": [[9, "advertools.extract.extract_hashtags"]], "extract_intense_words() (in module advertools.extract)": [[9, "advertools.extract.extract_intense_words"]], "extract_mentions() (in module advertools.extract)": [[9, "advertools.extract.extract_mentions"]], "extract_numbers() (in module advertools.extract)": [[9, "advertools.extract.extract_numbers"]], "extract_questions() (in module advertools.extract)": [[9, "advertools.extract.extract_questions"]], "extract_urls() (in module advertools.extract)": [[9, "advertools.extract.extract_urls"]], "extract_words() (in module advertools.extract)": [[9, "advertools.extract.extract_words"]], "headersspider (class in advertools.header_spider)": [[10, "advertools.header_spider.HeadersSpider"]], "advertools.header_spider": [[10, "module-advertools.header_spider"]], "crawl_headers() (in module advertools.header_spider)": [[10, "advertools.header_spider.crawl_headers"]], "custom_settings (headersspider attribute)": [[10, "advertools.header_spider.HeadersSpider.custom_settings"]], "errback() (headersspider method)": [[10, "advertools.header_spider.HeadersSpider.errback"]], "name (headersspider attribute)": [[10, "advertools.header_spider.HeadersSpider.name"]], "parse() (headersspider method)": [[10, "advertools.header_spider.HeadersSpider.parse"]], "start_requests() (headersspider method)": [[10, "advertools.header_spider.HeadersSpider.start_requests"]], "advimagespipeline (class in advertools.image_spider)": [[11, "advertools.image_spider.AdvImagesPipeline"]], "imagespider (class in advertools.image_spider)": [[11, "advertools.image_spider.ImageSpider"]], "imgitem (class in advertools.image_spider)": [[11, "advertools.image_spider.ImgItem"]], "advertools.image_spider": [[11, "module-advertools.image_spider"]], "crawl_images() (in module advertools.image_spider)": [[11, "advertools.image_spider.crawl_images"]], "custom_settings (imagespider attribute)": [[11, "advertools.image_spider.ImageSpider.custom_settings"]], "fields (imgitem attribute)": [[11, "advertools.image_spider.ImgItem.fields"]], "file_path() (advimagespipeline method)": [[11, "advertools.image_spider.AdvImagesPipeline.file_path"]], "include_img_regex (imagespider attribute)": [[11, "advertools.image_spider.ImageSpider.include_img_regex"]], "name (imagespider attribute)": [[11, "advertools.image_spider.ImageSpider.name"]], "parse() (imagespider method)": [[11, "advertools.image_spider.ImageSpider.parse"]], "start_requests() (imagespider method)": [[11, "advertools.image_spider.ImageSpider.start_requests"]], "summarize_crawled_imgs() (in module advertools.image_spider)": [[11, "advertools.image_spider.summarize_crawled_imgs"]], "advertools.knowledge_graph": [[12, "module-advertools.knowledge_graph"]], "knowledge_graph() (in module advertools.knowledge_graph)": [[12, "advertools.knowledge_graph.knowledge_graph"]], "advertools.kw_generate": [[13, "module-advertools.kw_generate"]], "kw_broad() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_broad"]], "kw_exact() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_exact"]], "kw_generate() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_generate"]], "kw_modified() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_modified"]], "kw_neg_broad() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_neg_broad"]], "kw_neg_exact() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_neg_exact"]], "kw_neg_phrase() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_neg_phrase"]], "kw_phrase() (in module advertools.kw_generate)": [[13, "advertools.kw_generate.kw_phrase"]], "advertools.logs": [[14, "module-advertools.logs"]], "crawllogs_to_df() (in module advertools.logs)": [[14, "advertools.logs.crawllogs_to_df"]], "logs_to_df() (in module advertools.logs)": [[14, "advertools.logs.logs_to_df"]], "advertools.regex": [[15, "module-advertools.regex"]], "advertools.reverse_dns_lookup": [[16, "module-advertools.reverse_dns_lookup"]], "reverse_dns_lookup() (in module advertools.reverse_dns_lookup)": [[16, "advertools.reverse_dns_lookup.reverse_dns_lookup"]], "advertools.robotstxt": [[17, "module-advertools.robotstxt"]], "robotstxt_test() (in module advertools.robotstxt)": [[17, "advertools.robotstxt.robotstxt_test"]], "robotstxt_to_df() (in module advertools.robotstxt)": [[17, "advertools.robotstxt.robotstxt_to_df"]], "advertools.serp": [[18, "module-advertools.serp"]], "serp_goog() (in module advertools.serp)": [[18, "advertools.serp.serp_goog"]], "serp_youtube() (in module advertools.serp)": [[18, "advertools.serp.serp_youtube"]], "set_logging_level() (in module advertools.serp)": [[18, "advertools.serp.set_logging_level"]], "youtube_channel_details() (in module advertools.serp)": [[18, "advertools.serp.youtube_channel_details"]], "youtube_video_details() (in module advertools.serp)": [[18, "advertools.serp.youtube_video_details"]], "advertools.sitemaps": [[19, "module-advertools.sitemaps"]], "sitemap_to_df() (in module advertools.sitemaps)": [[19, "advertools.sitemaps.sitemap_to_df"]], "advertools.spider": [[20, "module-advertools.spider"]], "crawl() (in module advertools.spider)": [[20, "advertools.spider.crawl"]], "advertools.stopwords": [[21, "module-advertools.stopwords"]], "advertools.twitter": [[23, "module-advertools.twitter"]], "authenticate() (in module advertools.twitter)": [[23, "advertools.twitter.authenticate"]], "get_application_rate_limit_status() (in module advertools.twitter)": [[23, "advertools.twitter.get_application_rate_limit_status"]], "get_available_trends() (in module advertools.twitter)": [[23, "advertools.twitter.get_available_trends"]], "get_favorites() (in module advertools.twitter)": [[23, "advertools.twitter.get_favorites"]], "get_followers_ids() (in module advertools.twitter)": [[23, "advertools.twitter.get_followers_ids"]], "get_followers_list() (in module advertools.twitter)": [[23, "advertools.twitter.get_followers_list"]], "get_friends_ids() (in module advertools.twitter)": [[23, "advertools.twitter.get_friends_ids"]], "get_friends_list() (in module advertools.twitter)": [[23, "advertools.twitter.get_friends_list"]], "get_home_timeline() (in module advertools.twitter)": [[23, "advertools.twitter.get_home_timeline"]], "get_list_members() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_members"]], "get_list_memberships() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_memberships"]], "get_list_statuses() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_statuses"]], "get_list_subscribers() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_subscribers"]], "get_list_subscriptions() (in module advertools.twitter)": [[23, "advertools.twitter.get_list_subscriptions"]], "get_mentions_timeline() (in module advertools.twitter)": [[23, "advertools.twitter.get_mentions_timeline"]], "get_place_trends() (in module advertools.twitter)": [[23, "advertools.twitter.get_place_trends"]], "get_retweeters_ids() (in module advertools.twitter)": [[23, "advertools.twitter.get_retweeters_ids"]], "get_retweets() (in module advertools.twitter)": [[23, "advertools.twitter.get_retweets"]], "get_supported_languages() (in module advertools.twitter)": [[23, "advertools.twitter.get_supported_languages"]], "get_user_timeline() (in module advertools.twitter)": [[23, "advertools.twitter.get_user_timeline"]], "lookup_status() (in module advertools.twitter)": [[23, "advertools.twitter.lookup_status"]], "lookup_user() (in module advertools.twitter)": [[23, "advertools.twitter.lookup_user"]], "make_dataframe() (in module advertools.twitter)": [[23, "advertools.twitter.make_dataframe"]], "retweeted_of_me() (in module advertools.twitter)": [[23, "advertools.twitter.retweeted_of_me"]], "search() (in module advertools.twitter)": [[23, "advertools.twitter.search"]], "search_users() (in module advertools.twitter)": [[23, "advertools.twitter.search_users"]], "set_auth_params() (in module advertools.twitter)": [[23, "advertools.twitter.set_auth_params"]], "show_lists() (in module advertools.twitter)": [[23, "advertools.twitter.show_lists"]], "show_owned_lists() (in module advertools.twitter)": [[23, "advertools.twitter.show_owned_lists"]], "advertools.url_builders": [[24, "module-advertools.url_builders"]], "url_utm_ga() (in module advertools.url_builders)": [[24, "advertools.url_builders.url_utm_ga"]], "advertools.urlytics": [[25, "module-advertools.urlytics"]], "url_to_df() (in module advertools.urlytics)": [[25, "advertools.urlytics.url_to_df"]], "advertools.word_frequency": [[26, "module-advertools.word_frequency"]], "extra_info": [[26, "term-extra_info"]], "num_list": [[26, "term-num_list"]], "phrase_len": [[26, "term-phrase_len"]], "regex": [[26, "term-regex"]], "rm_words": [[26, "term-rm_words"]], "text_list": [[26, "term-text_list"]], "word_frequency() (in module advertools.word_frequency)": [[26, "advertools.word_frequency.word_frequency"]], "advertools.word_tokenize": [[27, "module-advertools.word_tokenize"]], "word_tokenize() (in module advertools.word_tokenize)": [[27, "advertools.word_tokenize.word_tokenize"]], "activities_list() (in module advertools.youtube)": [[28, "advertools.youtube.activities_list"]], "advertools.youtube": [[28, "module-advertools.youtube"]], "captions_list() (in module advertools.youtube)": [[28, "advertools.youtube.captions_list"]], "channel_sections_list() (in module advertools.youtube)": [[28, "advertools.youtube.channel_sections_list"]], "channels_list() (in module advertools.youtube)": [[28, "advertools.youtube.channels_list"]], "comment_threads_list() (in module advertools.youtube)": [[28, "advertools.youtube.comment_threads_list"]], "comments_list() (in module advertools.youtube)": [[28, "advertools.youtube.comments_list"]], "guide_categories_list() (in module advertools.youtube)": [[28, "advertools.youtube.guide_categories_list"]], "i18n_languages_list() (in module advertools.youtube)": [[28, "advertools.youtube.i18n_languages_list"]], "i18n_regions_list() (in module advertools.youtube)": [[28, "advertools.youtube.i18n_regions_list"]], "playlist_items_list() (in module advertools.youtube)": [[28, "advertools.youtube.playlist_items_list"]], "playlists_list() (in module advertools.youtube)": [[28, "advertools.youtube.playlists_list"]], "search() (in module advertools.youtube)": [[28, "advertools.youtube.search"]], "subscriptions_list() (in module advertools.youtube)": [[28, "advertools.youtube.subscriptions_list"]], "video_categories_list() (in module advertools.youtube)": [[28, "advertools.youtube.video_categories_list"]], "videos_list() (in module advertools.youtube)": [[28, "advertools.youtube.videos_list"]]}}) \ No newline at end of file