From 4ced6e4ac26893304464f6368454a80830c3263d Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Sun, 7 Jun 2026 16:16:23 +0300 Subject: [PATCH] build: pump up version, browsers and deps --- .github/workflows/tests.yml | 2 +- agent-skill/Scrapling-Skill.zip | Bin 90018 -> 90020 bytes agent-skill/Scrapling-Skill/SKILL.md | 4 ++-- .../Scrapling-Skill/examples/README.md | 2 +- pyproject.toml | 8 ++++---- scrapling/__init__.py | 2 +- scrapling/engines/toolbelt/fingerprints.py | 4 ++-- server.json | 4 ++-- setup.cfg | 2 +- tests/requirements.txt | 2 +- tox.ini | 4 ++-- 11 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f82605d..930d0a0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -73,7 +73,7 @@ jobs: - name: Install all browsers dependencies run: | python3 -m pip install --upgrade pip - python3 -m pip install playwright==1.59.0 patchright==1.59.1 + python3 -m pip install playwright==1.60.0 patchright==1.60.1 - name: Get Playwright version id: playwright-version diff --git a/agent-skill/Scrapling-Skill.zip b/agent-skill/Scrapling-Skill.zip index 22fbb3231c28ed74331a39fbddbe65c71e15ae82..1a8d15b54cc8f92b9465e6ece763689a08e89e50 100644 GIT binary patch delta 9276 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 delta 9036 zcmZvC1yq#V7cbw?-64&X(nxosgmkxbBa%`>NJ|I9Idz3~BGgo~CQt*uCv)vKaUSIilkQE5u2FOpwbuXWLnX|801DovK)LC{&cYuCLoNbTPF- z2kenFP*`JWmB-uG?YgW5WoLkC;cpa?9J_E;lD6o)XLrwf_q^trO4%!Ah>A|WDW4eaD4J6SV%&OKC7+K?mHRj80McBIC z?4J@v!^zjMSR&jknO#tA%+j^GqUd+Ef1HiFG(O3QdY)hA@RWZCD$HL0>OdhI`&{LG zPco)8Drk1^gQ#8xYAAK4R}P!Kahat{_;BZreh;e~E34*fUGIsql!gQMr%|bf>>t3G zI5lhobMa3Lq=!n7R=+M26VE=&OzKxGMIjhSLbEniD1Vjh{Q?J4&Y`x(9MAg3DDx*j z&Kdaj*ZbS+w%cPmQ@@MHMTF8H+T1+zIMkUsP3)EyWpNbL&i%I+dY!K-=A}1=ii@)u zUb=6{biK`1>q?{S)8+kE4{syxktX#41Fvl`KMW<}hlBFrYz?T@;Uv8&rTKNps?YR) zq(6U$=fbfhp((WOX_iX%rl7ivpfnl2iTjy|S2Z{}%$Z%N&~QLY?$#3_TqKH5Q#>mLHK^7&@v%jkQ=wY=^T&gsQ?FgC9=fAAfk$|l z_^fdm;eNH0?ewm%-iQhsHb0gg?hi3=(@Gx?opW6Ekq@z9P8^8SWz0Rat$YX1hnoNm zMJbQ?rKOPQ45<*MTrZ{{NMj9HF~oE>skRTiW_Y_N9qi%rt+Yy%eAR_6!8Wgfu-Tj9i!C}dd3WMEsE3F>$F zlS;yjya)_2cxG;E40b9~%ZqGpPtVJKKS1qa`ic_Mu!T*r{CFIyB6AjvloY9xPOz}Y z?g>S8BZD!Bz^Z^b%4+?E-0mgnqjaKY6Io5~^u+aZ%ZX6X$Y?}IcN>a|;bXySh8#j1 z@=Q1_hFPnl&y$AHEF)-&O287u(Od_pFy@Ee6U7SVy*dTWAup|S!F#b6iLD>G1gnQKd@hj4CBen2Ve9>ZA`BDt+3Jger!U>DV<~EC;rY}={0kAJi6E^!tTlOS% zU{A3`by)Lpzx<$#Qua#OyMFA-tY&E^AG|bdq(G!HgVbDJzg#YzwowtZcI0c;u5hk? zT*M+~ME{TQKKr#023Tc7igYYCPqXl^U`%0T*T(cDBwJ~ca$-ffz}U`MvFr!wD9#%B zj$3FBmq-b8ZKBrfV&EOm;g?yRJRgu`ExBN0NGVfsV~mVlv{7#;@OBFnVdEJ?wjK`p z*~%K%&K(TBFDj}PijNh)mhr(`ChK8{7ZG~+7c9_KK4y6x)9=z2&pthE5lG_VgZ3Wm z+O}Kg7~~gcRsyu?WV6FJYbTq#YZdDJujzA;FLXvkLO8V9?J>DS zS*^+@p-&iBHuRmYk@4UK*ez%x)WXrhWVuNi7zWwaa4yku8216?TZv1BsDUrHZ;UFx zKEXw=&}5YP>alJS)9(JP6^WF5r=OicHr>+gc#Vwz~wOY;aX>TL<=9htVr zR0o1?Av>qV@67v1le*3Scztuv<8W#7dJ>YLiPDll(>jt0TBF}?)7C{Q8yUH{T;=c; zvF1~%jy7p__70TxP~cH>b#4S_jru_Racdi0Wr`Q)?C`VXlX{x%vNl*hst>E}^Fju& z9z4?biytOe%IaD&-G$M7dF|_adz$vz`W1r=jD;c8C^%@IWRpmwDi99A!Df*`NqAa~ z|EU|FXs;3XroT#>9*mkN9TYbG9L)@sst;=CW;W@5qe!;#h)u1Y*pNREvwVwlBovWC z-(kIt(QVBq4aM}$Pf-WSfz04`8nvr z(Jueyp0L5EVf|bYa}l2!y7^UgM;RN=lRmBZ@;hdjyrsP&&*p6&&?#Hdhmk@ zJD|ufBX~bX=B*A@ue^sr+OiIjHD`TL^hc&kxOhekej651jgz)~QCD)nNCC&5y4;Rx zqaj7diJ&ju;tgfOshfg6gE@p%F@9JK|2kYk{d#<^5~8ktzNK_VELV+;v)otvyK*P^ z^{><2)g8#$$-x3^n+Z4=P1Z|}@L4_?(IyX>I$fY6mPwN+C<6JciN8mR)JE9qaOi5% zD?b+(l{hAeV6Bt4-rFH&^(?of-`zFlXyYLsV5Mohopx9SAB#IQ0~^mpi8M=e>sVGZ zQfPqimPyn5)IqB8@L+uU$@=K$*y&O(B&gl#Q5?p~KTKQwK-q1zG!8s3tGqFH^RsS@y zU=#G$Lp7*lc<4UpOsaJwNw8CD{~&}FU2>NaNsc={n=nz&TJPjk%SA--FL>%b|DoTrNE)=;b z4Hj{qd7G@@R0?BbD#(=>Exa*{PE{j1AneeK9tf5*ZZd?~>C4>67M;FFxsFuZ$o9}Q z-rvF*r5mjOzIVM@wk}U`PI%Z35o?}_MXK`IyESi#68`l?& zN}uytTi&7&4uVNH<-Xr6NL=dsVeMFpJLNlS?0&5cUTYarmYR7k-<^{LCWWYnSSM^VY zmE=Bq&mk|owSRM3KNR5NjoR+m#AkX|sghZTC4`2oMBxZNg}P2Np zJBBy8zCY3!Ug=TK2~yhH@Ax^$R?tPwjL8ab=k9k^s2}u-i|BPCbYDIw+ze&oig+sA zZ_qp~8HPA_KY27rNKIOt=ljWvwPt9o!>e%tuRZEBs zR;%G$c)8K{2;#NQb+j`<$!K(U_1q^fxmDdI$ATTf>XqGMlMR?-^;)o>Tko(OFJDiB zku`J@2q9NHFUs1m;xeUMj5LznyP`c#bDVxZ%dD!c?46~I{(|6bm>fi^HSZO$w7)Wc zIfO$&iQ%Q)*k?KSdQGz?UC_ZHu{x62+or&je}NtHy}uw!_W~kNq3}~BAO7=rG$!PW zyy6!*@Cu8D#awOqUM^5_QiPjllG1P$;}5KE=@8roAQsqRM+3vJN^cX0Y%TIOVGFLUPh8s4I=ea)1{g$&{iq53wh zR`^ve_%-cl25)OGU(6~^;Z+Fs;Bm;ya5vh5l}vLjUNq_SdFW&I0a!Iru1uMd;qF$s zC7lkBAV})J@<;B9!{@vz_n?2~`f9Y@jaGta z-*e)Jq5Aohax^Jg-2@v)&O}@?8$Vukob^zDvQDhX5GTDvj0RHWu0U1OHKtL;=;iDI zm(HO$F<`>-ltX+{!sUGJ(H@CeN|m&%81}EPm zPQKh%KoO;J4}Cc`+Eks@jY^ds+QK$%|GW@en&bl03Ja}K9 zZHSzzN=1Dv0M-fmbfa$ef-`BnS8g|Y-97r-`J0Zcnu>AvOo;(|-LZKw<7Y~JJK?*u ze75i=L=uwP*i0;2sjG(l)79CF@92#vEALd1cZkLtbP{RSP*aIBoSV>2O&nl-_=a()zXClw8ZXdg5>CS(uA0JL?-DKl%^mS97 z9-BccjS@S(bP%6pi8?*L47ZZqlw6OSZ)RYy-*a}W`B7~@k!TLA+e)>If)7m8YB2Mi zftX|3OLs)iG9+bixKwt4nR9&;_7FUZ$+&4;2gOX251pVw>TlQ#c#ie5aM`2EdwoUk zOxPv$K#=9($I(*GG!`$fefq`l{M7IHXa?qk=;zfOMjpJY@5pzfzA9Yzl#nAD+YsAC z>@mbX`ES%<){n{e3tGF5c|5@sD2n`Vx8a>3xP@g6?UWve6rZs^Ivoy1`N+TrRAp;_ zV8a#N;?*1ZNxM^)e^TKJA3Jr3w4WSAGaK+hG0}E;Z;!fh^}Q#Z22IA_OHEk|iA2Qo zo(J$(%8djG7zxJ~PEH|M-=W>m5!058=Do<|_OEN%=s;GBpgH+;I`$kaMHY&hvt`Up zwdP474L`O?nl@@r%@f+1OX}d3js|icC%=!DK{brBXV-tmbbm)vKckrpro?I7by}s_nr0FK1 zI(Ve56|h^mTfkoVE+b2l1ZQGr$T*GbsI<7#V9u2`u|@F>%O$wr zeq*1&5Y(l}JqW>nE~8o=;-g=@sc|!yCAM>zUBKXi+-R~dolfmxwT z61(}n-cs=g;FciVm4@ZEEM=|F!)xwEl6F!u(Dxa$@5Y*lwN777@AXIHAl`fn_Br5j zlZ~lD7QGcteEY&9s)^p7 z0Td%eI5$_(bGvgK?L1fx+BEIPp*tv=@e+54ro56nV_Ef*(n`P@cBpQTTs~x!lJNK6`$(m>@DUJq<=aVck`@i$Wk?;8vJbvSsP@z*NthP$SJ|TC%nlvhMO0WVWd&}?N51#dm|h$M+K*f z=?KBW)QPa~#$eBjT7g`G}@F2A=qR$^?en>7}B<+bLr z=P8Zl+g6z8BoAK+*&!S*Lxg4H=iHeM1{Z#OnQzK`6ZfM@bHWi-#H`yuH;gH`n)8In zWUo{%!OIeG6-cZp`Bd*u95S@)br=;`zc(iMdy?zw<2*PBe2XzmxU=6QJBoGMKGFNL zUV!eT7=u4?JwQKa%{NwcRxZ9Wvyf#+>ZLK+cphzQLOVKBikBBxQHOnj6o#(Q$=)*C zOMw-dMms_eoQV#>AClXvJh_#NoB8mY1uKH55~}4ZydUM{P2`1{*ej}n1FfpxwgQ-= zkKYmdV1gv)*Agkklg*lJLuAM2>|;4M2w2@}2H!vQBv(dEyYP2;y>PNeq2wOvdLgvz zq_t@sRIf!+n*y@hT&Z~m4uoJmpaRe!EDv0P4M^$(MKF0qoSh~jQ~Q$t68#%lUeT31 zzg*gp*aM7E6*_t?l628rN~Pb%;wND)i~qz6JE{l@TBQ52o+(yyoHx*$C!-wKS2}~z zb+E5jA_yK2rdx1Bpa$V~G|h`@`#K%r2=AoN_nB2%4WwCIubV!{G)T5kz%cy~rX5eh+!1t{8qyq&UkJi&rz({Ddh+ldC(IF0Y`W?+b>0{Yr)S)~)_%Q7orYe2$b=oYL;DgS6XKS#u)$KBK-EJ$yna zwlvY;3tmB|vb|{8bY5DW2PhqktR#%0WECq6MVXJq6qRhiY}sE+5l%nY+BNCzaH}$C zG?L;QsY4{EEq75|opJm+XEb9oyiCycJtAROBu(MF-yc_F#9w|~u53mO_}gM<2`TvV z`W{X1rN1cE_PFhj;r+Q7awh7tAo+1{Ms1 z>$Urn8W_+mBHVmal9$aNpg{FNd?roHkuTmnCCQ9KdqVLwRYX`>v*O6=fW z+q`%;?kSuY{;jT?BwEcKpUB4A9F85Jz6HqB4$sgAOO0ZpNAAlOHv8jDESlaHPKu_Y zx*Q)#73bL(ick`E)B)l{?Tro1RW8Tif@8hg?ca~U0`X16RfqxI=t-Gy&dScQkK;?6 zUtY4}G!FCM;Btjh&GeL-@ylI~wQPEUBmHH~0jryMJe+_v&^qJB_jjOxENY!kpUb=v zbUvOzU6ctG`PdVkR9L$hqd|cvV?CQIaBwE)JSSONDQ z$M@)UdEVE^5%wwf>vtZc1>Pj@NKRGjP>h4OyrgZ7upkCUt}zlO~vgjU~j z{}^R4Q73YpP4XZBZL;|t$IZu+g=;Zl2&#_w_~;w4eHN8xmk)+j5|+3;8^H`F+C$2^}1qfybKAy!CPa?4SeG{u^2@( z(y`B#on2*-UNucnk~DhA{hhE#PPC?MgPExTEg439a&kZ^;@utKs+cZ9>wzb4qbgI3 zVJ`t^U@XGBrTVrV{y_w1`C3}5=1EufL8ZZqXlB=!%$6CUi3VjGZJx&aOYbC8wmJ{? zssm^d3Eh5ajGN5D!)!eUgkU~Y1FziV;p(NZs+GA^g~U-2lDl6|rWM#$6rQV^8g-o0 znN~?A=!GIL*;qENy~K|vvgqyVi6SLST^Vt838MTb-}FB)YKit1@?5MFu%@4X($Q}< zPC41QAcQm9Fz=1{vJc6_gX)K?ls~#V0Njl5qxM+_L#ZlXS4MMg5pd}fg^nlL{*#DM zr_EmXRV>i6+(Al>!o%PksYc_}z8|4Es zXV)-5X>xShfannZ{X;^<|FdtRrJe0pS@GF6G5H64@5S50s2noZmnV+ESQ& z-Ki_IPHb=Jf2J%9US>&kTc=@sK87%4^!soBKwgke=GK1@G#A(r3q9r^2#u8IInF&c zX8R9%26N@{A+()}ubLO^35(|vhNeY})sRy8z_K^Y4Ed{MGPqYHsfZigA`zZ>3@Kb( zX|G5+FsN<~3H2XZs6?Y$?{J_e_G=E?zybN zA7Jj@`M*&z$o(6oJ49O^{%^#PLPZi7RKe|kK|tQSWJ#bc%mB$9j)w(p(F9l^bb9!( z=BNIk|Mc!eU`@)hDE|?rD@Y(v1sX_>It{o#1j%vmZry)|>!`TS@(|1)lZ5$>Ql{;S4?FUbF%I&}X>)rqJ(A-kKd%`$)DdkQM;x!?it%7( z*BTY7oO^QX>oH>TK2Id5mP96Hz<>&696k$lW0RBOFE1yLK1)+W4T$7pNEl}Vd>9KK=Q_2)JU7gZ<+oI~J zd=AP`>!HSRFB0I$YGm}J=X2Bh&JIc2wAOtSe<>R)Y(HyiU)zn4t7o4M5T}+M$Ld8q zc=$OuRpo;#luwN2Jg4-4lEn-x%H0{>te89aBJ8O`fcjBv#7HT@@kIc`V?w>@IGT8S z;=sP1av!(IYsgI|ql{Rh=o1Xf6I)7?^f;Nv6!b(-2&?~kJ9ewYGT(wiqHKz}p(%rj+-=W78t!nV4=S9?t2j^G#DcV0$ zuHy*2z)j8Jf=gc6usr@LCaIA+d!Dgi`(39HtR)pGo!N!|%-uT?hwhjG)DWIZ{CYEK;0*mA zNe5g2M1uU^Qv%T8XMh~?-PnVYC;=1qLkzm71gH_;PcaRZzoP#j|4=n$zyRf*0sWx{ zP(!6wEK$GYH!GmBLV0CXzhh~%l*~LR0mW*PvxP!dH~IzfZ%D4L-8~LT2Qtk6wto&sG|v}0MDVhnt&&$UFn|23YE|T^g-{H@71Uw)5_G)VJ(0c zNJ`TN^fB(9k1)A!9H_ZAKnAi=|7$x(o$~(;@Iy$U)*mN#ZS{vu41J;l&;s62O`W^A z;JSYuTegXaYr09z7rsH0Jh) z1|fgR4870;ctLo6e}y#l0UZ!U*x${dKJXm0pZ0enZ2)M40`mXrwdGSoCk*cNMk@YP z8OmjNC%V^kUsE1v<^86=`EUJkTWJ2I2W2w{@Bl98OCtab;6M+I03XoI@n3}uV?Yzs zbaHR|?;${LPyQAKs%~=0.4.8"` +`pip install "scrapling[all]>=0.4.9"` Then do this to download all the browsers' dependencies: diff --git a/agent-skill/Scrapling-Skill/examples/README.md b/agent-skill/Scrapling-Skill/examples/README.md index d0f9a2b..85de486 100644 --- a/agent-skill/Scrapling-Skill/examples/README.md +++ b/agent-skill/Scrapling-Skill/examples/README.md @@ -9,7 +9,7 @@ All examples collect **all 100 quotes across 10 pages**. Make sure Scrapling is installed: ```bash -pip install "scrapling[all]>=0.4.8" +pip install "scrapling[all]>=0.4.9" scrapling install --force ``` diff --git a/pyproject.toml b/pyproject.toml index 8cb4768..9c390c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "scrapling" # Static version instead of a dynamic version so we can get better layer caching while building docker, check the docker file to understand -version = "0.4.8" +version = "0.4.9" description = "Scrapling is an undetectable, powerful, flexible, high-performance Python library that makes Web Scraping easy and effortless as it should be!" readme = {file = "README.md", content-type = "text/markdown"} license = {file = "LICENSE"} @@ -61,7 +61,7 @@ classifiers = [ "Typing :: Typed", ] dependencies = [ - "lxml>=6.1.0", + "lxml>=6.1.1", "cssselect>=1.4.0", "orjson>=3.11.8", "tld>=0.13.2", @@ -73,8 +73,8 @@ dependencies = [ fetchers = [ "click>=8.3.0", "curl_cffi>=0.15.0", - "playwright==1.59.0", - "patchright==1.59.1", + "playwright==1.60.0", + "patchright==1.60.1", "browserforge>=1.2.4", "apify-fingerprint-datapoints>=0.13.0", "msgspec>=0.21.1", diff --git a/scrapling/__init__.py b/scrapling/__init__.py index 3420e25..a5ff5eb 100644 --- a/scrapling/__init__.py +++ b/scrapling/__init__.py @@ -1,5 +1,5 @@ __author__ = "Karim Shoair (karim.shoair@pm.me)" -__version__ = "0.4.8" +__version__ = "0.4.9" __copyright__ = "Copyright (c) 2024 Karim Shoair" from typing import Any, TYPE_CHECKING diff --git a/scrapling/engines/toolbelt/fingerprints.py b/scrapling/engines/toolbelt/fingerprints.py index f4fdfc1..0c02002 100644 --- a/scrapling/engines/toolbelt/fingerprints.py +++ b/scrapling/engines/toolbelt/fingerprints.py @@ -13,8 +13,8 @@ from scrapling.core._types import Dict, Literal, Tuple __OS_NAME__ = platform_system() OSName = Literal["linux", "macos", "windows"] # Current versions hardcoded for now (Playwright doesn't allow to know the version of a browser without launching it) -chromium_version = 147 -chrome_version = 147 +chromium_version = 148 +chrome_version = 148 @lru_cache(1, typed=True) diff --git a/server.json b/server.json index e4e813e..deccdda 100644 --- a/server.json +++ b/server.json @@ -14,12 +14,12 @@ "mimeType": "image/png" } ], - "version": "0.4.8", + "version": "0.4.9", "packages": [ { "registryType": "pypi", "identifier": "scrapling", - "version": "0.4.8", + "version": "0.4.9", "runtimeHint": "uvx", "packageArguments": [ { diff --git a/setup.cfg b/setup.cfg index 1c967c8..4e3d8b6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = scrapling -version = 0.4.8 +version = 0.4.9 author = Karim Shoair author_email = karim.shoair@pm.me description = Scrapling is an undetectable, powerful, flexible, high-performance Python library that makes Web Scraping easy and effortless as it should be! diff --git a/tests/requirements.txt b/tests/requirements.txt index 83aa3dc..7c9c3ff 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,6 +1,6 @@ pytest>=2.8.0,<9 pytest-cov -playwright==1.59.0 +playwright==1.60.0 werkzeug<3.0.0 pytest-httpbin==2.1.0 pytest-asyncio diff --git a/tox.ini b/tox.ini index e740705..799ceae 100644 --- a/tox.ini +++ b/tox.ini @@ -10,8 +10,8 @@ envlist = pre-commit,py{310,311,312,313} usedevelop = True changedir = tests deps = - playwright==1.59.0 - patchright==1.59.1 + playwright==1.60.0 + patchright==1.60.1 -r{toxinidir}/tests/requirements.txt extras = ai,shell commands =