{"adoption": {"forks": 412, "observed_at": "2026-08-28T04:06:03.662952+00:00", "stars": 1998}, "canonical_url": "https://ross.abutalabs.com/products/ipproxytool", "card": {"archived": false, "artifact_type": "application", "description": "python ip proxy tool  scrapy crawl. 抓取大量免费代理 ip，提取有效 ip 使用", "domain": ["crawlers", "web-development", "developer-tools", "privacy"], "enriched": true, "function": ["web-scraping", "proxy", "http-client", "search-engine"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["awolfly9/IPProxyTool"], "name": "awolfly9/IPProxyTool", "platform": ["python", "windows", "cli"], "pushed_at": "2022-12-08T07:42:07+00:00", "repo": "awolfly9/IPProxyTool", "stars": 1998, "tags": ["proxy-scraper", "free-proxy-list", "scrapy", "mysql", "proxy-validator", "proxy-api", "linux", "macos", "web-server"], "topics": ["proxy", "python", "ipproxy"], "urls": [], "use_cases": ["scrape free proxy ip lists", "validate which proxies actually work", "get an api of usable proxies for web scraping", "check proxy anonymity and https support", "build a rotating proxy pool for crawlers"], "what_it_is": "A Python/Scrapy application that crawls free proxy websites, validates the collected proxy IPs against target sites, and stores usable proxies in MySQL. It also exposes an HTTP API to query valid proxies by anonymity, HTTPS support, and other filters.", "when_to_avoid": ["you need reliable paid proxies with guarantees", "you don't want to run MySQL and maintain scrapers", "you need actively maintained software - the project sees infrequent updates"], "when_to_choose": ["you need a self-hosted pool of free proxies for scraping", "you want extensible scrapy spiders for proxy sources and validators", "you prefer proxies stored in MySQL with a query API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ipproxytool", "repo": "awolfly9/IPProxyTool", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "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:06:03.662952+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.662952+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:02:12.474750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "165383081b68c3ccd3c894da0db1d71078c2248d2376d6513ba288f258b70b62", "fetched_at": "2026-08-28T04:06:03.662952+00:00", "kind": "readme", "missing": false, "url": "https://github.com/awolfly9/IPProxyTool"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3558, "days_push": 1364, "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}}