Commit Graph

252 Commits

Author SHA1 Message Date
Karim shoair bf5aa021d4 fix(browsers): solving an issues with leaving playwright loop open when cdp connection fails
This has been causing issues with tests for a long time, and now finally found the reason.
2026-01-18 16:46:48 +02:00
Karim shoair a17bb1d976 feat(browsers): Add option to retry tabs that gives errors 2026-01-11 23:40:26 +02:00
Karim shoair d5b9ed11b2 fix(browsers): Close pages that give error
This was causing the browser and the whole code to stand still.
2026-01-11 18:34:13 +02:00
Karim shoair dd5c30c521 feat(response): Option to set the referer as the previous response url. 2026-01-11 03:24:30 +02:00
Karim shoair 1443a469a3 fix: handle a bug with response follow referer flow argument 2026-01-11 03:22:51 +02:00
Karim shoair c5bc82deb8 fix(browsers): solve a bug with setting referer on the request level 2026-01-11 03:21:03 +02:00
Karim shoair 0634f5796c feat(spiders): Add follow function to the response 2026-01-10 20:39:43 +02:00
Karim shoair f80e8828f7 refactor: internal API changes 2026-01-08 01:53:48 +02:00
Karim shoair 08f3e6efad fix: add missing line 2026-01-08 01:01:00 +02:00
Karim shoair 6a73f9dcd7 refactor: internal API changes to be easily used as indicators for spiders 2026-01-08 00:52:06 +02:00
Karim shoair c8a2456b81 fix(StealthyFetcher): disable incognito mode to solve #123 2026-01-03 01:50:02 +02:00
Karim shoair 4947152be2 docs: change docstring style for some methods 2026-01-01 21:06:35 +02:00
Karim shoair f6f0ed4b37 fix(async stealth): wait the coroutine of the bounding box 2025-12-31 00:19:53 +02:00
Karim shoair 0c7e26ae5c fix(fingerprints): do not create google referer for IPs 2025-12-30 21:58:09 +02:00
Karim shoair ee13af9516 build: update deps
and docstrings
2025-12-29 16:08:51 +02:00
Karim shoair 5e3845f060 docs: shorten docstrings for some functions 2025-12-28 21:56:28 +02:00
Karim shoair 9bfe744840 fix: remove forgotten unused code 2025-12-28 00:14:47 +02:00
Karim shoair 1b838eabd0 fix: update the cookies type hint for the mcp server 2025-12-28 00:08:44 +02:00
Karim shoair 09bbd416b8 fix: remove old proxy logic
When I was caching it with the rest of the data
2025-12-28 00:02:50 +02:00
Karim shoair fb3a1b4c17 style: removing unused code 2025-12-27 20:50:08 +02:00
Karim shoair 842718ba94 fix: update shell signatures for the autocompletion
Added missing fields and reordered classes as well for easier comparisons
2025-12-27 14:30:48 +02:00
Karim shoair cfc667f7dc refactor(fetchers)!: Replace Camoufox with patchright and many optimizations
- DynamicFetcher became 20% faster
- StealthyFetcher became 99% faster
- Scrapling size decreased
- Code became ~400 lines shorter
- Most importantly, scrapling is more stable and reliable now.
- Less confusing for new users.
- More...
2025-12-26 03:21:13 +02:00
Karim shoair f9f34e6ee9 fix: improve the handling of useragent in chrome fetcher 2025-12-24 23:08:30 +02:00
Karim shoair 85b327a598 fix: Improve stealth of dynamic browser by pinning Chrome's UA version 2025-12-24 21:34:44 +02:00
Karim shoair ecb97d3fd6 docs: add docs for timezone_id argument 2025-12-18 01:16:22 +02:00
Karim shoair 39f544eae4 feat(dynamicSession): add the option to set timezone of the browser 2025-12-18 01:13:31 +02:00
Karim shoair b507e4d4a0 refactor(fetchers): rename internal api
To make it easier to use to use sessions outside `with` context
2025-12-17 01:27:40 +02:00
Karim shoair aed34e43b5 fix(fetchers): better handling for infinite network_idle 2025-12-03 03:11:30 +02:00
Karim shoair 04a612e64e docs: fix docstrings for all requests methods 2025-11-25 21:05:21 +02:00
Karim shoair 5376c97996 fix(fetcher): Remove non-keywords arguments 2025-11-25 20:25:09 +02:00
Karim shoair f0b01fc253 refactor(browser fetchers): Make all the type hints dynamic + Faster validation
Made the code shorter by an additional ~200 lines and easier to maintain in return for making the arguments autocompletion bad for shells that don't check for dynamic type hints like IPython.
2025-11-25 20:18:36 +02:00
Karim shoair 9e85311ff6 fix(validators): Fix overriding session values with request ones 2025-11-25 19:48:09 +02:00
Karim shoair 74f24d60f6 fix(fetcher): Replace vars logic with one that doesn't require dict attribute 2025-11-24 13:04:12 +02:00
Karim shoair c487faf4fd pref(requests): Optimizing memory by specifiying slots 2025-11-23 21:50:54 +02:00
Karim shoair 357b170e1c refactor(requests): Make all the type hints dynamic
Made the code shorter by about ~500 lines and easier to maintain in return for making the arguments autocompletion bad for shells that don't check for dynamic type hints like IPython.
2025-11-23 20:48:51 +02:00
Karim shoair 3565f9d500 feat(fetcher): Make impersonate able to randomize fingerprint 2025-11-16 16:33:58 +02:00
Karim shoair c8b9a04e87 docs: making some adjustments 2025-11-14 02:22:59 +02:00
Karim shoair d018d6e438 fix: fixing the response logic 2025-11-10 03:03:05 +02:00
Karim shoair ff19dd5bf5 feat: replace raw_response property with smart content detection 2025-11-10 02:39:45 +02:00
Karim shoair df073c4680 fix: added raw_response to separate collected response from rendered response 2025-11-08 20:09:40 +02:00
Karim shoair fc4a809985 fix(cloudflare): Limit the waiting period for websites that captcha doesn't disappear after solving
Also solves #100
2025-10-27 05:13:12 +03:00
Karim shoair d4a2507666 refactor(validation): All browser based fetchers are ~8-15% faster now in most cases 2025-10-27 04:48:45 +03:00
Karim shoair 13b9a4668c feat(DynamicSession): New option to add extra browser flags 2025-10-26 16:53:27 +03:00
Karim shoair 59ec6be201 refactor(fetchers): Less duplicated code and better handling for unstable websites
- Websites that never finish loading their requests won't crash the code now if you used `network_idle` with them
- Fixed a typo in `load_dom` in DynamicSession's async_fetch
- Removed dead code
2025-10-26 05:04:19 +03:00
Karim shoair 74fa45daea fix: Addressing the issue of collecting response after page_action in #100 2025-10-26 00:41:45 +03:00
Karim shoair 9c7114219b fix(solver): Improve the logic a bit 2025-10-12 06:41:04 +03:00
Karim shoair a38b92cc87 feat(Dynamic fetcher): Add additional_args option to customize browser as in StealthyFetcher 2025-10-12 05:07:22 +03:00
Karim shoair c34e10faed feat(fetchers): Add argument to control the user data directory 2025-10-12 04:48:59 +03:00
Karim shoair 8c995c936d fix(CF solver): further improve the detection 2025-10-12 04:15:16 +03:00
Karim shoair 073c4910d4 fix(fetchers): More accurate collection of the final response
This will make the `response.body` return the raw response for text/json responses as well
2025-10-12 04:12:18 +03:00