{"adoption": {"forks": 582, "observed_at": "2026-08-28T04:05:53.714187+00:00", "stars": 1915}, "canonical_url": "https://ross.abutalabs.com/products/python-crawler", "card": {"archived": false, "artifact_type": "learning-resource", "description": "从头开始 系统化的 学习如何写Python爬虫。 Python版本 3.6 ", "domain": ["crawlers", "tutorials", "web-development"], "enriched": true, "function": ["web-scraping", "parser", "developer-tools"], "health_score": 20, "homepage": null, "language": "HTML", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["Ehco1996/Python-crawler"], "name": "Ehco1996/Python-crawler", "platform": ["python", "cross-platform"], "pushed_at": "2023-05-22T21:21:07+00:00", "repo": "Ehco1996/Python-crawler", "stars": 1915, "tags": ["python-crawler", "beautifulsoup", "scrapy", "selenium", "tutorial", "chinese", "python"], "topics": [], "urls": [], "use_cases": ["learn python web scraping from scratch", "examples of scraping with beautifulsoup and requests", "scrapy framework tutorial with practice projects", "selenium browser automation scraping examples", "practice projects for downloading images and novels", "learn how to handle anti-crawler techniques and proxies"], "what_it_is": "A systematic, from-scratch tutorial repository for learning how to write Python web crawlers, with example code for BeautifulSoup, Scrapy, and Selenium. It pairs code samples with a series of Chinese-language articles on Zhihu.", "when_to_avoid": ["you need a production-ready scraping framework or maintained library", "you need code that works against current website structures, since many examples are outdated", "you need an English-language resource"], "when_to_choose": ["you are a beginner wanting a structured learning path for Python crawling", "you prefer learning through worked examples with accompanying articles", "you want sample code covering bs4, Scrapy, and Selenium"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/python-crawler", "repo": "Ehco1996/Python-crawler", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "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:53.714187+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.714187+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:10:18.284794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b7710650816183f47e3655003c4455bb910a468e9699a716b7493fd5d3d31c0e", "fetched_at": "2026-08-28T04:05:53.714187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ehco1996/Python-crawler"}], "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": 3410, "days_push": 1199, "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}}