{"adoption": {"forks": 258, "observed_at": "2026-08-28T04:08:35.672057+00:00", "stars": 4107}, "canonical_url": "https://ross.abutalabs.com/products/node-osmosis", "card": {"archived": false, "artifact_type": "library", "description": "Web scraper for NodeJS", "domain": ["web-development", "crawlers"], "enriched": true, "function": ["web-scraping", "parser", "http-client"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["rchipka/node-osmosis"], "name": "rchipka/node-osmosis", "platform": [], "pushed_at": "2023-12-13T04:18:37+00:00", "repo": "rchipka/node-osmosis", "stars": 4107, "tags": ["html-parsing", "xpath", "css-selectors", "libxml", "proxy-support", "cookies", "data-engineering", "nodejs"], "topics": [], "urls": [], "use_cases": ["scrape product listings from e-commerce sites", "extract structured data from html pages", "crawl paginated search results", "parse html with css and xpath selectors", "submit login forms and scrape behind auth", "scrape through rotating proxies with retries"], "what_it_is": "Osmosis is an HTML/XML parser and web scraper library for Node.js built on native libxml C bindings. It offers a chainable, promise-like interface for crawling pages, following links, paginating, and extracting structured data with CSS and XPath selectors.", "when_to_avoid": ["you need a modern, actively maintained scraper with current ecosystem support", "you are scraping JavaScript-heavy SPAs that require a headless browser", "you need TypeScript types or a promise/async-await native API"], "when_to_choose": ["you need fast, low-memory scraping in Node.js without jsdom or jQuery", "you want a fluent chainable API for follow/paginate/set extraction flows", "you need proxy rotation, cookies, and form login built into the scraper"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/node-osmosis", "repo": "rchipka/node-osmosis", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "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:08:35.672057+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.672057+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:23:13.283844+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb17be635bd5863b83e829fccd559fdcc30e94a9f1ec6967e12c8d0d9a33e2a7", "fetched_at": "2026-08-28T04:08:35.672057+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rchipka/node-osmosis"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4226, "days_push": 994, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}