{"adoption": {"forks": 143, "observed_at": "2026-08-28T04:05:41.741790+00:00", "stars": 1830}, "canonical_url": "https://ross.abutalabs.com/products/requestium", "card": {"archived": false, "artifact_type": "library", "description": "Integration layer between Requests and Selenium for automation of web actions.", "domain": ["web-development", "crawlers", "developer-tools"], "enriched": true, "function": ["http-client", "web-scraping", "parser"], "health_score": 79, "homepage": null, "language": "Python", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["tryolabs/requestium"], "name": "tryolabs/requestium", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-24T00:20:36+00:00", "repo": "tryolabs/requestium", "stars": 1830, "tags": ["selenium", "requests", "parsel", "web-automation", "session-management", "browser-automation", "automation"], "topics": ["web-automation", "requests", "selenium", "python", "interface"], "urls": [], "use_cases": ["scrape websites that mix static and JavaScript-heavy pages", "switch from requests to selenium while keeping cookies and session", "write cleaner xpath and css selectors with parsel integration", "automate login flows and cookie handling across http and browser", "wait reliably for dynamically loading elements in selenium", "run headless browser automation scripts in python"], "what_it_is": "Requestium is a Python library that merges Requests, Selenium, and Parsel into a single integrated tool for web automation. It lets scripts written mostly with Requests seamlessly switch to a Selenium webdriver for JavaScript-heavy pages while maintaining the same session.", "when_to_avoid": ["you only need plain HTTP requests with no JavaScript rendering", "you need a full browser automation framework like Playwright with multi-browser support", "you are building a large-scale distributed crawler rather than scripted automation"], "when_to_choose": ["your automation script mostly uses Requests but needs a real browser for some pages", "you want to keep one session across HTTP requests and Selenium", "you want cleaner selectors and more reliable element waiting/clicking than raw Selenium"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/requestium", "repo": "tryolabs/requestium", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.741790+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:19:21.112609+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba02e0bd75ba5d1280a81a9202025cb4625404d07eaca4cd99ee2dfa2fc867e8", "fetched_at": "2026-08-28T04:05:41.741790+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tryolabs/requestium"}, {"content_hash": "9e8eb361dde0d87f3411c7d59e523fef0a23cc3775ea570149828e63da08ab74", "fetched_at": "2026-08-29T10:58:22.315877+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/requestium/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3351, "days_push": 10, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}