
proxy-scraper
io.github.maximilianfeix由 GitHub 帳號 maximilianfeix 發布v1.31.0更新於 Oct 31, 2026
Free proxies that actually work: checked HTTP/SOCKS proxies, and pages fetched through them
概覽
讓助理從每小時發布的清單取得經過檢測的免費 HTTP/SOCKS 代理,從你的網路重新檢測,並透過代理抓取網頁。
- 可以做什麼
- 依協定、國家、HTTPS、匿名等級、資料中心、黑名單、穩定性、上線率、延遲或可連線的網站篩選,從每小時清單取得代理
- 從你自己的網路檢測一批代理,並回報進度
- 透過已檢測的代理載入網頁,某個代理失敗時自動切換,並回傳可讀文字
- 提供每項檢測的結果(通過、失敗、不可用、略過)及原因代碼、目標與時間
- 適用情境
- 適合讓助理以其他國家的視角載入公開網頁、為測試或抓取收集可用的免費代理,或查明哪些網站會封鎖免費代理。不適用於需要登入或涉及個人資料的內容。
- 執行需求
- 透過 uvx 以 stdio 在本機執行,需要安裝 uv;若本機 Python 低於 3.10,伺服器會自行取得合適版本。套件為 proxy-scraper-cli,需帶 mcp 附加元件。未宣告任何帳號、API 金鑰或環境變數。需要網路存取以下載發布的清單並連線代理與目標網站。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 proxy-scraper,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
[tests] [Release] [Live proxies] [PyPI] [Downloads] [Python] [Stars] [License]
[Browse the live list] [Just the lists: free-proxy-list] [Install] [Python API] [MCP server for AI agents] [Discord bot]
English · 简体中文 · Español · Deutsch · Русский · Português (Brasil) · Français
Install · Live list · Check states · For AI agents · Proxy server · Recipes · Options · FAQ · All docs
Proxy checks you can inspect: what passed, what failed, and when. proxy-scraper collects public HTTP, SOCKS4 and SOCKS5 proxies from hundreds of lists, runs up to four checks on each one and keeps the outcome of each check for the proxies it lists (for the rest it counts how each check ended), so "working" is something you can look at instead of a label you have to trust.
https://github.com/user-attachments/assets/b99c1d8f-5bce-4a52-a8a9-b9c2c726301b
21 seconds · real interface, example numbers, documentation IPs · mp4
Try it – no install needed, uvx comes with uv (pipx run does the same):
A real terminal recording, made against six simulated proxies on localhost (reproduce it). It shows how results are reported. It measures nothing about public proxies.
The package is proxy-scraper-cli on PyPI (the plain name is taken). Once installed, the command is proxy-scraper. --verify and --diagnose need version 1.30 or newer.
Three ways to get proxies, and what "checked" means for each:
What you get
- Every check has an outcome you can read.
passed,failed,unavailableorskipped, with a reason code, the target and the time, in the terminal, in JSON and from Python. A check that didn't run is never shown as passed, and a check target that is down doesn't turn the proxies checked against it into failures. → Check states - Fresh when it matters.
--pick --verifychecks a few proxies from your own network, usually in seconds.--recheckdoes the same for a list of your own, and--diagnosetells you why one proxy doesn't work. - More than a list. A rotating local proxy server, a Python API, an MCP server for AI agents, Docker, and exports for curl, proxychains, Clash and sing-box.
What it can't do. Free proxies are run by strangers, and of one hour's list only about a quarter is on the list again a day later. A pass is one measurement, from one network, against test targets: it is not a promise for the next hour or for the site you care about. The HTTPS check is a verified TLS connection to one test host, not a security rating. Use free proxies for public data and testing, never for logins, payments or anything personal. → What the numbers show and what they don't · Why free proxies fail · How it compares · Who runs free proxies
Only want the lists? You don't need this tool: free-proxy-list has them as plain files per protocol and country, rebuilt about every hour. Or straight from here: all.txt · http.txt · socks4.txt · socks5.txt · proxies.json · more formats
Used by: the hourly list is a built-in source of monosans/proxy-scraper-checker and gfpcom/free-proxy-list.
Install
With pipx (recommended – gives you a proxy-scraper command in its own environment):
With Homebrew on macOS and Linux:
The formula follows each release within about a day.
Docker, pip, a faster event loop, the latest main, tab completion and where state and results are stored: every other way to install.
Started without arguments, a wizard asks what you are looking for – a preset (find everything, browsing, maximum anonymity, fast, a few right now, recheck, proxy server right away, …) or step by step: the wizard and its presets.
Keys: ↑↓ select · Space toggle · 1–9 jump · Enter next · Esc back · q quit. In scripts and cron jobs the wizard never shows up – pass options or -y.
Live proxy list
Don't want to scan yourself? About every hour GitHub Actions runs the tool and publishes the hits to the proxy-list branch – every entry passed the first request, the second request and the content check in the last run (the HTTPS test is recorded per entry, not required), best first: fast ones that are likely to still be up come on top.
Just want the lists? They also live in a repository of their own, maximilianfeix/free-proxy-list – one list per protocol, per country and per site, updated every hour, with the numbers of the last run on the front page. Watch or star it to keep it at hand. Other tools pull it too: monosans/proxy-scraper-checker and gfpcom/free-proxy-list use it as a built-in source.
[Working proxies over the last days, stacked by protocol – redrawn with every run]
→ Browse it on the website – search, filter by type, country, HTTPS, provider and latency, see how long each proxy has been on the list and in how many of the week's runs, copy or download exactly the proxies you need.
Every protocol and country also has its own page with a plain download, e.g. SOCKS5 or Germany (country/de/proxies.txt).
[Countries with the most working proxies right now]
Where they come from: which free proxy lists actually work ranks every source of the hourly runs – how many proxies each one lists, how many passed every check and the share. The same as data: sources.json.
Over time: every day the first run's proxies.json is kept for good as a gzipped asset of the release of that year, like snapshots-2026 – proxies-2026-09-28.json.gz and so on, for anyone who wants to look at free proxies over weeks and months.
Every file is also on GitHub Pages, which sits behind a CDN, isn't rate limited like raw.githubusercontent and sends CORS headers, so it works straight from the browser: https://proxy-scraper.de/socks5.txt. jsDelivr works too, but can lag behind by a few hours.
Or let the tool start from it: proxy-scraper --recheck live downloads the list and checks it again from your network – well under a minute instead of a full scan. How many still work from your network differs a lot from the list's own count, which is the point of checking again. Add --serve and the result is a rotating proxy.
Check states
Every check of a proxy ends in one of four states. They are in proxies.json, in the CSV, in --pick --json, in --diagnose, in the Python API (result.checks) and in the MCP results.
Two rules follow from that:
- A check that didn't run is never
passed. Before 1.30, a run without a reachable second target kept every proxy as if it had been confirmed, and a missing reference page looked like "content unchanged". - A check target that is down doesn't fail the proxies checked against it. When a second request, a content request that returned a different page, or an HTTPS test fails, the tool asks the target directly: at most once every 3 seconds however many proxies fail in between, and a "down" answer is reused for 10 seconds. If the target doesn't answer, the proxy's check is
unavailable, notfailed. For the first request a scan does it differently: it watches the target, switches to another one and checks the affected proxies again.--diagnoseand--pick --verifyhave no such watcher and ask directly, as for the later checks. Two things are never asked about, because the target did answer: a second site that saw a different exit IP, and a proxy that could not be connected to in the first place.
The checks, what each passed does and doesn't mean, the fields and every reason code: docs/check-states.md.
For AI agents (MCP)
proxy-scraper-mcp is an MCP server: Claude Code, Claude Desktop, Cursor, VS Code, Codex and any other MCP client can ask for working proxies and load pages through them.
[proxy-scraper MCP server on Glama]
Things to ask your agent: "Load bbc.com/news as seen from the UK", "Give me 5 SOCKS5 proxies from Germany that aren't in a datacenter", "Check which of these sites block free proxies".
Needs uv – it fetches a suitable Python by itself if yours is older than 3.10. Claude Code:
Claude Desktop, Cursor and most other clients – add this to the MCP config (Claude Desktop: Settings → Developer → Edit Config, Cursor: ~/.cursor/mcp.json):
VS Code, Codex, Docker, or without uv: setup for every other client. It's also in the official MCP registry as io.github.maximilianfeix/proxy-scraper, so clients that browse the registry can install it from there.
The server tells agents what it tells you: free proxies are run by strangers, so no logins, cookies or personal data through them. Local and private addresses are refused, and results go to proxy-scraper's data folder, not into the project you're working in.
Examples
Running from a clone? Replace proxy-scraper with python3 proxy_scraper.py.
From Python
Same run as the command line – sources, learning, every check, result files – just without terminal output. Each result has url, latency, exit_ip, https, anonymity, country, asn, org and hosting. There's an async version of both (find_proxies_async, check_proxies_async).
Don't need a fresh scan? live_proxies takes the live list instead – no checks, one download, done in about a second:
Same filters as find_proxies, plus min_uptime, works_on (["google"], "reddit", "amazon", "instagram", "tiktok", "discord") and limit. Every result also has uptime_24h, uptime_7d, first_seen, up_for_hours and sites.
Or let the library do the retrying: ProxyRotator loads a URL through the list and moves on to the next proxy when one fails, and proxy_url() gives requests, httpx, Playwright or Scrapy one local address that rotates behind the scenes – Python API: rotating through the list.
Rotating proxy server
A list is nice – but usually you just want to enter one proxy address and have something behind it that keeps trying:
Like commercial rotating proxies, the username carries what you want: country-XX, type-http|socks4|socks5 and session-NAME, combinable (country-us-type-socks5-session-a). It works for HTTP (Proxy-Authorization) and SOCKS5 (username/password auth). By default the password is ignored and the server only listens on 127.0.0.1.
To reach it from other machines, give it a password – every client then has to send it, over HTTP and SOCKS5 alike, and the status page wants it as Basic auth:
Without a password the server refuses to start on any address but 127.0.0.1: that would be an open proxy for anyone who reaches the port (Docker publishes ports past host firewalls like ufw). If a firewall or -p 127.0.0.1:… already keeps others out, say so with --serve-open. The ready-made compose.yaml starts the server in Docker from the live list, with a password, a health check and learned state in a volume: put PROXY_PASSWORD=… into .env, then docker compose up -d.
Rotation strategies, sticky sessions, failover, background refill and the live dashboard: docs/proxy-server.md.
Proxy pool API
Some programs want a proxy address, not a proxy – to hand it to a browser, a worker or a queue. The same port answers plain HTTP requests with one:
All endpoints, filters and what's compatible with jhao104/proxy_pool: Proxy pool API.
Discord and Telegram bot
The live list can also come to you: bot/ is a Discord bot that posts every run into a server – a summary with the fastest proxies, the full lists per protocol as files, and slash commands like /proxies type:socks5 country:DE https:true. It sets up its own read-only channels when you invite it, and a GitHub Action deploys it to a server as a systemd service. The same process answers on Telegram too: /proxy de socks5 for one proxy with a curl line, /proxies 10 us https for a short list. Setup in bot/README.md.
Documentation
Everything that used to be further down this README now has its own page – all docs:
Features
What the tool does, check by check and feature by feature: How it works → Features.
Why not just download a list?
A list tells you what worked for its author when it was built. What the tool adds: How it works → Why not just download a list? · how it compares.
How it works
Sources, collecting, prioritizing, the checks, countries and providers, blocklists, learning: docs/how-it-works.md. Your own lists with --source: recipes.
Output
Every run gets its own folder; results/latest.txt always names the newest one – the layout is in docs/options.md.
Recipes
requests, httpx, aiohttp, Scrapy, Selenium, proxychains, Clash / Mihomo, sing-box, PAC, Proxifier, Burp Suite / ZAP / mitmproxy, pipes, a GitHub workflow, Windows: docs/recipes.md.
Options
Every option in one table: docs/options.md. Everything else: proxy-scraper --help
GitHub Actions
The workflows that test, lint, build the hourly list and release: docs/how-it-works.md. To use proxies in your own workflow: the GitHub Action.
FAQ
Who runs free proxies – and should you use them? · almost nothing gets through · Windows · fewer proxies than other lists · logins · how fresh the list is · is it safe: docs/faq.md.
Roadmap
What's next is in the open issues – ideas and wishes are welcome as an issue. During Hacktoberfest there are beginner-friendly issues with pointers on where to start. What shipped in each version: docs/roadmap.md.
Contributing
Bug reports, new sources and pull requests are very welcome – see CONTRIBUTING.md, and docs/ARCHITECTURE.md for how the pieces fit together. The short version:
The project structure, file by file, is in How it works.
Community
Questions, ideas and things you built with it go to Discussions – bugs to the issues. If proxy-scraper saves you time, a ⭐ helps others find it.
Thanks to everyone who helped build it – new sources, countries, Python 3.14, examples and more:
[Contributors to proxy-scraper]Want to join? Beginner-friendly issues say where to start.
From the same author: dejabuilt, an agent skill that checks GitHub before you build – it tells you whether a project idea already exists, with the numbers.
[Star history of proxy-scraper]
Acknowledgements
proxy-scraper stands on the work of the people who publish free proxy lists. Thanks to everyone listed in sources.json, and especially to
- monosans/proxy-scraper-checker and gfpcom/free-proxy-list, whose curated source collections are read as meta sources
- Textualize/rich, which draws the whole terminal UI
- IP Geolocation by DB-IP – the free country database (CC BY 4.0) used for offline country lookups
- httpbin, checkip.amazonaws.com, ifconfig.me, ipinfo.io, wtfismyip.com, ident.me and ip-api.com, used as check targets and for country lookups
Disclaimer
This tool only collects publicly listed proxies and checks whether they work. You are responsible for how you use them – respect the terms of the sites you visit and the laws where you live.
Made in Germany by @maximilianfeix · MIT License · Changelog · Security · Contributing
If proxy-scraper saves you time, a ⭐ helps others find it.
來源:README.md,提交 9edab6d
工具
0版本歷史
16- v1.31.0最新Oct 24, 2026
- v1.30.0Oct 17, 2026
- v1.29.0Oct 14, 2026
- v1.28.0Oct 11, 2026
- v1.27.0Oct 6, 2026
- v1.26.0Oct 6, 2026
- v1.25.0Oct 5, 2026
- v1.24.0Oct 5, 2026
- v1.23.0Oct 2, 2026
- v1.22.0Sep 29, 2026
- v1.21.0Sep 29, 2026
- v1.20.0Sep 27, 2026
- v1.10.0Sep 27, 2026
- v1.9.0Sep 27, 2026
- v1.8.1Sep 27, 2026
- v1.8.0Sep 27, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分