{"adoption": {"forks": 3237, "observed_at": "2026-08-28T04:11:14.956854+00:00", "stars": 16218}, "canonical_url": "https://ross.abutalabs.com/products/awesome-python-login-model", "card": {"archived": false, "artifact_type": "learning-resource", "description": "😮python模拟登陆一些大型网站，还有一些简单的爬虫，希望对你们有所帮助❤️，如果喜欢记得给个star哦🌟", "domain": ["crawlers", "web-development", "developer-tools"], "enriched": true, "function": ["web-scraping", "auth", "http-client"], "health_score": 20, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["Kr1s77/awesome-python-login-model"], "name": "Kr1s77/awesome-python-login-model", "platform": ["python", "cli"], "pushed_at": "2022-07-26T16:22:57+00:00", "repo": "Kr1s77/awesome-python-login-model", "stars": 16218, "tags": ["selenium", "simulated-login", "cookie-reuse", "js-reverse-engineering", "example-code", "awesome-list"], "topics": ["python", "spiders", "selenium", "twitter-bot", "weixinbot", "facebook-login", "jingdong", "taobao-spider", "zhihu-spider", "github-login", "bilibili-login", "lagou-spider", "sina-spider", "163mail-login", "tuchong", "douban-spider", "guoke-spider"], "urls": [], "use_cases": ["simulate login to websites like zhihu, bilibili, or taobao with python", "learn selenium-based web scraping login techniques", "scrape data behind a login wall using cookies", "reverse engineer website login encryption in javascript", "examples of logging into weibo, douban, or 163 mail programmatically"], "what_it_is": "A collection of Python example scripts demonstrating how to simulate logins on major Chinese and international websites using Selenium, WebDriver, and JavaScript reverse engineering. It also includes simple spiders that reuse login cookies with requests or Scrapy for faster data collection.", "when_to_avoid": ["you need a maintained production scraping library", "the target site has changed its login flow since the scripts were last updated", "you need a permissively licensed codebase for commercial use"], "when_to_choose": ["you need reference code for automating logins on popular sites", "you want to learn selenium and cookie-based scraping patterns", "you are studying js reverse engineering for login flows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/awesome-python-login-model", "repo": "Kr1s77/awesome-python-login-model", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "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:11:14.956854+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.956854+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:05:11.246491+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b30ba9846d4d77a263bc5b56e1fdf2c4bf5dd7e25b84a3ff12b2785fb5e28b70", "fetched_at": "2026-08-28T04:11:14.956854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kr1s77/awesome-python-login-model"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+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": 2782, "days_push": 1499, "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}}