01代理使用者名稱該怎麼看?
代理使用者名稱是一串用連字號連接各部分的簡短設定字串。它以 user 開頭,後面接上名稱與值的組合,用來設定出口位置以及 IP 保留多久。了解各部分之後,不必開啟儀表板也能手動寫出任何連線字串。
country 後面接兩個小寫字母的國家代碼。user-country-us 代表美國 IP,user-country-jp 代表日本 IP。city 後面接小寫的城市名稱,空格改成底線,例如 user-country-us-city-new_york。
session 後面接你自訂的工作階段名稱。使用 user-country-jp-session-shop1 時,所有使用這個名稱的請求最多 120 分鐘內都會保持同一個 IP。加上 type-mobile,例如 user-type-mobile-country-gb,就會從行動 IP 連出。
密碼欄位一律填入以 pt_ 開頭的存取權杖。要更換位置或工作階段時,只要修改使用者名稱,權杖維持不變即可。
- user 代表設定的開頭。
- country 加兩個字母的代碼用來選擇國家。
- city 加上以底線連接的名稱用來選擇城市。
- session 加名稱可保持同一個 IP。
- type-mobile 用來選擇行動 IP。
02HTTP 代理與 SOCKS5 代理:該用哪一種?
網頁爬蟲和瀏覽器作業用 HTTP 代理最簡單,非網頁流量或希望在代理端解析 DNS 的情況則適合 SOCKS5 代理。ProxyToo 在同一個閘道 gate.proxytoo.com:7000 同時支援兩者。使用者名稱和權杖不變,只要更改位址最前面的協定即可。
HTTP 代理是為網頁請求而設計,所以幾乎所有函式庫和瀏覽器都能直接使用。代理會為連線開啟加密通道,因此 HTTPS 網站也能正常運作。requests、Scrapy、Puppeteer、Playwright 這類網頁工具,建議先從 HTTP 格式開始。
SOCKS5 轉送的是連線本身,因此除了網頁之外還能承載許多種類的流量。在 Python 中,位址以 socks5h 開頭時,主機名稱會在出口國家解析,讓你的位置保持一致。Chromium 系列瀏覽器對帶使用者名稱的 SOCKS5 支援有限,所以瀏覽器自動化使用 HTTP 會更順暢。
- 網頁爬蟲和瀏覽器自動化用 HTTP
- 傳送非網頁流量的程式用 SOCKS5
- 要在代理所在國家解析 DNS 就用 socks5h 位址
- 兩者使用相同的使用者名稱和權杖
03如何在瀏覽器或防偵測瀏覽器中加入代理?
在一般瀏覽器中,開啟代理擴充功能,在各自的欄位填入主機、連接埠、使用者名稱和權杖四個值。在儀表板的「產生連線資訊」選擇 host:port:user:pass 格式,四個值會排在同一行,可以逐欄複製貼上。如果第一次載入頁面時跳出驗證視窗,就在那裡輸入使用者名稱和權杖。
防偵測瀏覽器會為每個設定檔提供獨立的瀏覽器環境,所以基本原則是一個設定檔對應一個使用者名稱。在設定檔的代理欄位選擇 HTTP 或 SOCKS5,然後在使用者名稱加上 session 部分,每個設定檔使用不同的工作階段名稱。這樣每個設定檔都有自己的 IP,而且在該設定檔內 IP 保持不變。
把設定檔的語言、時區和位置調成與所選國家一致,網頁就會呈現當地訪客看到的樣子。長時間經營同一個帳號的設定檔,適合使用整個期間都保持同一 IP 的 ISP 代理或獨享資料中心代理。兩者都可以在儀表板的「購買產品」選擇數量和期間下單。
- 每個設定檔使用一個工作階段名稱
- 語言和時區配合 IP 所在國家
- 長期使用的設定檔選 ISP 代理
- 在驗證視窗輸入使用者名稱和權杖
04如何在 Python requests 和 Scrapy 中使用代理?
在 Python 中,把代理組成 http://username:token@gate.proxytoo.com:7000 這樣的一行,再傳給函式庫的代理設定。使用 requests 的關鍵是在 http 和 https 兩個項目都填入同一個位址。兩個都填好,HTTPS 請求也會經過代理送出。
在 requests 的 Session 物件上設定一次代理,該工作階段內的所有請求都會套用。想要每次請求換新 IP 時,使用只含國家的使用者名稱;登入這類需要延續的流程,則使用帶 session 部分的使用者名稱。若要使用 SOCKS5,請安裝 requests 的 SOCKS 擴充套件,並把位址開頭改成 socks5h。
在 Scrapy 中,把同樣格式的位址放進每個請求的 meta proxy 值,內建的代理中介軟體會自動把使用者名稱和權杖轉成驗證標頭。要讓所有請求套用同一組設定,可以寫一個小型下載器中介軟體來填入 proxy 值。若要把流量分成多個工作階段,就讓這個中介軟體為每一批請求指派不同的工作階段名稱。
並行數和間隔可以用 CONCURRENT_REQUESTS 和 DOWNLOAD_DELAY 等設定來調整。先從低數值開始,確認回應穩定後再逐步調高,在速度與成功率之間取得平衡。住宅代理依使用的流量計費,過濾掉圖片和字型可以讓餘額用得更久。
05如何在 Node.js、Puppeteer 和 Playwright 中設定代理?
在 Node.js 中,常見做法是建立一個代理 agent,再交給你的請求函式庫。HTTP 可使用 https-proxy-agent 或 undici 的 ProxyAgent 等套件,SOCKS5 則使用 socks-proxy-agent,並傳入包含使用者名稱和權杖的位址。agent 建立一次後在多個請求間重複使用,連線就能重用並保持快速。
使用 Puppeteer 時,在 --proxy-server 啟動參數只傳入閘道位址,開啟頁面後再用 page.authenticate 另外送出使用者名稱和權杖。這樣分開處理是在 Chrome 中最可靠的設定方式。要切換國家或工作階段,最簡單的做法是用新的使用者名稱啟動另一個瀏覽器。
使用 Playwright 時,在 proxy 啟動選項設定 server、username 和 password,驗證一步就完成。password 欄位填入你的存取權杖。你也可以只啟動一個瀏覽器,為每個 context 設定各自的代理,讓每個 context 搭配一個工作階段名稱,一支程式就能同時使用多個 IP。
瀏覽器自動化每開一個頁面都會下載圖片、影片和字型,流量累積起來相當可觀。用請求攔截封鎖不需要的資源,可以降低按 GB 計費的住宅代理和行動代理費用。加上工作階段名稱能讓頁面載入期間 IP 保持穩定,頁面就能完整呈現。
06輪換代理還是固定工作階段:爬蟲用哪個比較好?
每個頁面各自獨立讀取的爬蟲,每次請求使用新 IP;登入或購物車這類需要延續的流程,則使用工作階段。沒有 session 部分時,每次請求都會更換 IP;加上之後,在該名稱下 IP 保持不變。同一個權杖兩種都能用,你可以依工作的每個步驟選擇。
輪換模式適合頁面之間沒有關聯的工作,例如搜尋結果、商品列表和價格表。請求會平均分散到許多 IP,對網站來說看起來就像許多訪客的一般流量。即使對同一個網站進行大規模爬取,只要拉開請求間隔就能保持穩定。
使用工作階段的訣竅,是每個工作單位使用不同的工作階段名稱。如果要檢查五個商店帳號,就命名為 shop1 到 shop5,讓每個帳號保有自己的 IP。把工作拆成能在工作階段時效內完成的短流程,整個流程就能維持同一個 IP。
如果整個月都需要同一個 IP,最適合 ISP 代理或獨享資料中心代理;若要以低單價大量使用,共享資料中心代理或 IPv6 代理是不錯的選擇。對於國家混用也無妨的大流量工作,每天 $37.58 的無限流量住宅代理讓費用更容易規劃。
- 獨立頁面每次請求使用新 IP
- 登入和結帳流程保持同一個工作階段名稱
- 每個工作單位使用不同的工作階段名稱
- 整個月同一個 IP 就選 ISP 或獨享資料中心
07如何檢查代理 IP 並排除連線錯誤?
最快的檢查方式,是透過代理向一個會顯示 IP 的頁面發出請求,再確認 IP 和國家是否與使用者名稱中的國家相符。在儀表板的「產生連線資訊」選擇 curl 格式,就會得到可直接貼到終端機的檢查指令。如果有設定工作階段,同一個指令送兩三次,確認 IP 是否維持不變。
407 回應代表代理沒有接受你的憑證,通常是使用者名稱或權杖中有一個字元出錯。請確認權杖以 pt_ 開頭、複製時沒有夾帶空格或換行,以及使用者名稱以 user 開頭。如果單行位址中出現特殊字元,進行 URL 編碼就能解決。
403 或 429 這類回應來自網站,代表代理連線本身成功,而網站正在留意請求的速度或模式。請拉開請求間隔、送出類似瀏覽器的標頭,並從工作階段改為每次請求使用新 IP。
逾時常見的原因包括公司或學校網路封鎖了閘道連接埠、城市指定範圍太窄,或程式中的逾時時間太短。請從其他網路試試同一個指令、拿掉 city 部分只指定國家,並把請求的逾時時間調長。另外也請確認還有餘額,若是 IP 產品,請確認訂單在「我的訂單」中顯示為「使用中」。
- 407 代表要檢查使用者名稱和權杖
- 403 或 429 代表要放慢速度並輪換 IP
- 逾時代表要檢查網路、城市和逾時設定
- 同一個指令執行幾次來測試工作階段
08如何保護代理存取權杖的安全?
存取權杖同時是你的帳號 ID 和代理密碼,任何拿到它的人都能用你的餘額使用代理。伺服器只保存權杖的雜湊值,所以註冊時保存的權杖檔案就是唯一的正本。請在兩個地方各存一份,並加入密碼管理工具,既安全又方便找到。
不要把權杖寫在程式碼裡,改從環境變數或獨立的設定檔讀取。把該設定檔加入 .gitignore,避免進入你的儲存庫;在共用伺服器上則收緊檔案權限,只讓自己能讀取。這樣一來,程式碼可以分享,權杖則只留在你自己的電腦上。
也要留意日誌和螢幕截圖。發生錯誤時若輸出完整的代理位址,權杖會直接寫進日誌,所以記錄位址時務必遮蔽權杖部分。發問或張貼截圖時,只顯示使用者名稱,並先刪除權杖。
- 權杖檔案存放在兩個地方
- 從環境變數讀取權杖
- 設定檔不放進儲存庫
- 日誌和截圖中遮蔽權杖