English • 繁體中文
這個專案是一個 Python 應用程式,用於從多個來源網站爬取臨時簡訊接收號碼。它具備以下核心功能:
- 多網站支援:可同時從
freereceivesms.com、receive-smss.com、temp-number.com等多個網站獲取號碼與簡訊。 - 多語言介面:支援繁體中文與英文,可透過命令列參數輕鬆切換。
- 靈活的命令列控制:允許使用者自訂要爬取的網站、顯示語言,並整合 ngrok 建立公開網址。
- 高效的併發爬蟲:利用 執行緒池 (ThreadPoolExecutor) 併發檢查多個號碼頁面,以找出活躍號碼。
- Python 3.10 或更高版本。
- uv (推薦的 Python 包管理器) 或 pip。
- Google Chrome 瀏覽器 (用於本地執行)。
- ngrok Authtoken (用於建立公開網址,非必要但推薦)。
專案使用 pyproject.toml 管理依賴。請使用 uv sync 或 pip install -r requirements.txt (如果已生成) 來安裝。
uv sync
或
pip install beautifulsoup4 flask pyngrok requests selenium tomli waitress webdriver-manager
請根據您的需求編輯 config.toml 檔案:
| 設定項目 | 說明 |
|---|---|
| ngrok_auth_token | 您的 ngrok 金鑰。若在 Colab 中執行,此項可留空,透過命令行傳入。 |
| country_code | 要搜尋的國家/地區代碼 (例如: us, ca, gb)。 |
| cache_duration_seconds | 爬蟲背景更新資料的間隔時間(預設 300 秒,即 5 分鐘)。 |
| max_workers | 併發檢查號碼時使用的最大執行緒數。 |
本專案支援透過命令列參數進行客製化設定,讓您能更靈活地啟動服務。
您可以使用 uv run python main.py --help 來查看所有可用的參數。
| 參數 | 選項 | 預設值 | 說明 |
|---|---|---|---|
--web |
1, 2, 3, top2, all |
all |
指定要爬取的網站: • 1: freereceivesms.com• 2: temp-number.com• 3: receive-smss.com• top2: 爬取前兩個網站• all: 爬取所有網站 |
--lan |
zh, en |
zh |
設定顯示語言: • zh: 繁體中文• en: 英文 |
--ngrok_token |
YOUR_TOKEN |
config.toml 中的值 |
設定 ngrok 權杖: 直接透過命令列提供您的 ngrok Authtoken,此參數會覆寫 config.toml 中的設定。 |
這會使用預設設定 (爬取所有網站、使用中文介面) 在本地 http://127.0.0.1:5000 啟動。
uv run python main.py提供您的 ngrok 權杖,程式將會為您建立一個公開的網址。
uv run python main.py --ngrok_token <YOUR_NGROK_TOKEN>只爬取 receive-smss.com (--web 2),並將終端與網頁介面都切換為英文 (--lan en)。
uv run python main.py --web 2 --lan en在 Colab 環境中,建議將 ngrok 權杖儲存在 Secrets Manager 中,並透過以下指令執行,即可獲得一個公開的監控網址。
# 從 Colab Secrets 讀取權杖
from google.colab import userdata
ng_token = userdata.get("NGROK_AUTH_TOKEN")
# 執行主程式,爬取所有網站並建立 ngrok 通道
!uv run python main.py --web all --ngrok_token $ng_token| 項目 | 原始程式碼 (main.py) | 優化後的程式碼 (已修訂) | 效益 |
|---|---|---|---|
| 結構重複 | 兩個檔案高度重複。 | 結構分離但核心邏輯相同(保留分離以適應不同啟動方式)。 | 清晰度維持,未來可進一步重構。 |
| 爬蟲效能 | 在每個執行緒中重複呼叫 ChromeDriverManager().install()。 | 將 ChromeDriverManager().install() 移至主程式啟動區塊,僅執行一次。 | 極大提升啟動速度和爬蟲效率,避免數十次重複的驅動程式檢查和設定。 |
| WebDriver | 每個檢查任務啟動一個獨立的瀏覽器實例。 | 保持現有設計,但共用單一 Service 實例。 | 這是 Selenium 併發的標準模式,但應留意 MAX_WORKERS 的設定,數值過高仍可能耗盡系統資源。 |
優化後的程式碼主要解決了 WebDriver 驅動程式的重複安裝問題,這是在使用 Selenium 進行併發爬蟲時最常見且影響最大的效能瓶頸。
這個專案是開源的,我們非常歡迎任何形式的貢獻!無論您是經驗豐富的開發者,還是剛入門的新手,都歡迎您一起加入,讓這個工具變得更好!
我們將會盡快 review 您的貢獻。感謝所有為這個專案付出時間和精力的開發者!
本專案採用 MIT License 授權。