{"adoption": {"forks": 724, "observed_at": "2026-08-28T04:07:29.202666+00:00", "stars": 2910}, "canonical_url": "https://ross.abutalabs.com/products/easy12306", "card": {"archived": false, "artifact_type": "library", "description": "使用机器学习算法完成对12306验证码的自动识别", "domain": ["machine-learning", "computer-vision", "image-processing"], "enriched": true, "function": ["machine-learning", "deep-learning", "computer-vision", "ocr", "image-processing"], "health_score": 20, "homepage": null, "language": "Python", "license": "Artistic-2.0", "license_family": "other", "maturity": "maintenance", "member_repos": ["zhaipro/easy12306"], "name": "zhaipro/easy12306", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2021-03-04T10:20:41+00:00", "repo": "zhaipro/easy12306", "stars": 2910, "tags": ["captcha-recognition", "12306", "cnn", "keras", "chinese-text-recognition"], "topics": ["deep-learning", "mathematics", "captcha", "12306"], "urls": [], "use_cases": ["solve 12306 captcha automatically", "recognize chinese text in captcha images", "classify small object images with deep learning", "identify which grid images match a captcha prompt", "learn how captcha recognition models are built"], "what_it_is": "A Python project that uses deep learning models to automatically recognize 12306 (China Railway) captchas, identifying both the Chinese text prompt and the matching images in the captcha grid. It ships pre-trained Keras models and CLI scripts for recognition.", "when_to_avoid": ["you need general-purpose captcha solving for other sites", "you need a maintained production service - the project has not been updated since 2021 and 12306 may have changed its captcha", "you need a supported API rather than local scripts"], "when_to_choose": ["you need to automate 12306 captcha solving", "you want pre-trained models for this specific captcha format", "you want a reference implementation of two-stage captcha recognition"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/easy12306", "repo": "zhaipro/easy12306", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "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:07:29.202666+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.202666+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:34:21.038614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80785190a411efda89dae447f46d2cba6e283cd849f04f02cf6b1acbf850aff", "fetched_at": "2026-08-28T04:07:29.202666+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaipro/easy12306"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4181, "days_push": 2008, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}