逐步操作
Scrapy連接代理的步驟
從上到下依序操作即可。請把 YOUR_TOKEN 換成您的存取令牌。
第 1 步
安裝 Scrapy
終端機 pip install scrapy第 2 步
基本連線
程式碼 import scrapy class PriceSpider(scrapy.Spider): name = "price" start_urls = ["https://ipinfo.io/json"] custom_settings = {"CONCURRENT_REQUESTS_PER_DOMAIN": 4} def start_requests(self): for url in self.start_urls: yield scrapy.Request(url, meta={ "proxy": "http://user-country-de:[email protected]:7777" }) def parse(self, response): yield {"body": response.text}第 3 步
使用固定會話
需要修改的部分 meta={"proxy": "http://user-country-de-session-a1b2:[email protected]:7777"} # 登入後連續瀏覽多個頁面時,請使用同一個會話名稱第 4 步
檢查連線
回應範例 { "ip": "203.0.113.24", "country": "US", "org": "家居寬頻業者" }
用戶名稱
用戶名稱規則
在用戶名稱中依序加入值,指定國家、城市、會話和產品。
| 值 | 作用 |
|---|---|
country-國家代碼 | 指定要連線的國家 |
city-城市名稱 | 進一步指定城市。只用於支援城市定位的國家 |
session-名稱 | 開啟固定會話。名稱相同就會使用同一 IP |
type-mobile 或 type-dc | 切換成流動或數據中心代理。沒有寫就是住宅代理 |
用戶名稱這樣組合
user開頭country-us國家session-a1b2固定會話結果 user-country-us-session-a1b2
問題排解
Scrapy連線錯誤排解
出現 407 錯誤
代表用戶名稱或令牌有誤。請確認令牌前後沒有空格,並確認用戶名稱以 user- 開頭。
連線逾時
把 timeout 調整到 30 秒左右,並減少對同一網站的同時請求數。
無法維持同一 IP
請確認用戶名稱中有 session 值。固定會話最長維持 30 分鐘。
無法定位到想要的城市
請在支援國家頁面確認該國是否支援城市定位,並用英文小寫字母和底線填寫城市名稱。
更多
其他串接指南
在 Python requests 中使用代理
requests 是 Python 最常用的網頁請求函式庫之一。在 proxies 填入 ProxySup 網關地址,就能直接連線。
查看指南為 Playwright 連接代理
Playwright 是用程式碼操作瀏覽器的工具。啟動瀏覽器時在 proxy 選項填入網關、用戶名稱和令牌,所有頁面請求都會經過 ProxySup。
查看指南