{"adoption": {"forks": 3912, "observed_at": "2026-08-28T04:11:32.333306+00:00", "stars": 22033}, "canonical_url": "https://ross.abutalabs.com/products/learn_python3_spider", "card": {"archived": false, "artifact_type": "learning-resource", "description": "python爬虫教程系列、从0到1学习python爬虫，包括浏览器抓包，手机APP抓包，如 fiddler、mitmproxy，各种爬虫涉及的模块的使用，如：requests、beautifulSoup、selenium、appium、scrapy等，以及IP代理，验证码识别，Mysql，MongoDB数据库的python使用，多线程多进程爬虫的使用，css 爬虫加密逆向破解，JS爬虫逆向，分布式爬虫，爬虫项目实战实例等", "domain": ["crawlers", "tutorials", "web-development"], "enriched": true, "function": ["web-scraping", "parser", "developer-tools"], "health_score": 77, "homepage": "http://fxxkpython.com", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["wistbean/learn_python3_spider"], "name": "wistbean/learn_python3_spider", "platform": ["python", "cross-platform"], "pushed_at": "2026-07-25T09:59:15+00:00", "repo": "wistbean/learn_python3_spider", "stars": 22033, "tags": ["python3", "scrapy", "selenium", "beautifulsoup", "mitmproxy", "anti-scraping", "chinese-language", "python"], "topics": ["python3", "python-script", "python-spider"], "urls": [], "use_cases": ["learn python web scraping from scratch", "tutorial for scrapy and selenium crawling", "how to capture mobile app traffic with fiddler or mitmproxy", "bypass anti-scraping with ip proxy pools", "reverse engineer javascript-encrypted web requests", "build a distributed crawler in python", "scrape websites with requests and beautifulsoup"], "what_it_is": "A Chinese-language tutorial series and example code repository teaching Python web scraping from zero to advanced, covering packet capture (Fiddler, mitmproxy), libraries like requests, BeautifulSoup, Selenium, Appium, and Scrapy, plus IP proxies, captcha recognition, JS reverse engineering, and distributed crawling. It is a curated collection of lessons with accompanying Python scripts rather than a reusable library.", "when_to_avoid": ["you need a production-ready scraping framework or library to import", "you require English-language documentation", "you want actively maintained, tested software rather than tutorial snippets"], "when_to_choose": ["you want a structured, example-driven path to learn Python scraping in Chinese", "you need sample code for proxies, captchas, or JS reverse engineering", "you are a beginner who wants tutorials from zero experience"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/learn_python3_spider", "repo": "wistbean/learn_python3_spider", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "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:32.333306+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.333306+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:57:44.229225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "face15a33d5f9cba859361415c581fb901281a222779d718a4536a7288eb5c69", "fetched_at": "2026-08-28T04:11:32.333306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wistbean/learn_python3_spider"}, {"content_hash": "877eebc451db20e253c62218ec399d84717afb2a978a0095d3a2c79b39fa43ef", "fetched_at": "2026-08-29T07:55:58.576444+00:00", "kind": "homepage", "missing": false, "url": "http://fxxkpython.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "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": 2710, "days_push": 39, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}