v0.2.93
This is an essential update for everyone to fully enjoy Scrapling as it's intended
What's changed
- The return type is now consistent across all the parser engine so you will always get a return type as one of these
Adaptor
,Adaptors
,TextHandler
,TextHandlers
,None
, and a list in case you have mixed results like combined CSS selector. This allows a better coding experience with minimum manual type checking, makes the library more stable, and makes chaining methods always possible. - Most of the parser engine especially the
Adaptor
class got refactored to a cleaner version and most importantly a faster version. So now almost all the methods/properties, especially the searching methods, got a speed increase between 5-40%. Some methods got bigger speed boosts likefind_by_regex
got a ~60% speed boost! The automatch feature got a small ~5% speed boost. - Fixed logic bugs with the
find_all
/find
methods that made the passed filters used in OR fashion and other times as an AND. So now all elements returned need to fulfill all filters you pass. - Now all regex-related methods return
TextHandler
/TextHandlers
for easier methods chaining. - Added a new
below_elements
property that returns anAdaptors
object of all elements under the current element in the DOM tree. - Now all methods/properties that were returning HTML source as string are now returning it as
TextHandler
so you can do regex easily on it etc... - StealthyFetcher is now a bit faster and more stealthy. Also, now it's possible to click Captchas in iframes like Cloudflare Turnstile.
- The auto-completion and type hints improved a lot in nearly half the library. Especially
Adaptor
,TextHandler
, andTextHandlers
. - Now slicing
TextHandler
, accessing by index, or using thesplit
method returns anotherTextHandler
instead of the standard Python string. Now almost all standard string operations/methods return otherTexthandler
instead of standard string to make chaining methods/functions always possible. - Fixed some small bugs and typos. For example, the Fetcher async_put was doing post request instead of put request 😶🌫️
- Improved the README a bit till I finish the documentation website.
This was supposed to be a small update till version 0.3 but thought to make it better.
Thanks for all your support!