# 代ç使ç¨è¯´æ 代çä½¿ç¨æä¸ç§æ¹å¼ 1. ä½¿ç¨æ¡æ¶å ç½®ä»£çæ± 2. èªå®ä¹ä»£çæ± 3. 请æ±ä¸ç´æ¥æå® ## æ¹å¼1. ä½¿ç¨æ¡æ¶å ç½®ä»£çæ± ### é 置代ç å¨é ç½®æä»¶ä¸é 置代çæåæ¥å£ ```python # 设置代ç PROXY_EXTRACT_API = None # 代çæåAPI ï¼è¿åç代çåå²ç¬¦ä¸º\r\n PROXY_ENABLE = True PROXY_MAX_FAILED_TIMES = 5 # 代çæå¤§å¤±è´¥æ¬¡æ°ï¼è¶ è¿åä¸ä½¿ç¨ï¼èªå¨å é¤ ``` è¦æ±APIè¿åçä»£çæ ¼å¼ä¸ºä½¿ç¨ /r/n åéï¼ ``` ip:port ip:port ip:port ``` è¿æ ·feapderå¨è¯·æ±æ¶ä¼èªå¨éæºä½¿ç¨ä¸é¢ç代ç请æ±äº ## 管ç代ç 1. å é¤ä»£çï¼é»è®¤æ¯è¯·æ±å¼å¸¸è¿ç»5次ï¼åå é¤ä»£çï¼ ä¾å¦å¨åçå¼å¸¸æ¶å é¤ä»£ç ```python import feapder class TestProxy(feapder.AirSpider): def start_requests(self): yield feapder.Request("https://www.baidu.com") def parse(self, request, response): print(response) def exception_request(self, request, response): request.del_proxy() ``` ## æ¹å¼2. èªå®ä¹ä»£çæ± 1. ç¼åä»£çæ± ï¼ä¾å¦å¨ä½ ç项ç®ä¸å建个my_proxypool.pyï¼å®ç°ä¸é¢ç彿° ```python from feapder.network.proxy_pool import BaseProxyPool class MyProxyPool(BaseProxyPool): def get_proxy(self): """ è·å代ç Returns: {"http": "xxx", "https": "xxx"} """ pass def del_proxy(self, proxy): """ @summary: å é¤ä»£ç --------- @param proxy: xxx """ pass ``` 3. ä¿®æ¹settingç代çé ç½® ``` PROXY_POOL = "my_proxypool.MyProxyPool" # ä»£çæ± ``` å°ç¼å好çä»£çæ± é ç½®è¿æ¥ï¼å¼ä¸ºç±»ç模åè·¯å¾ï¼éè¦æå®å°å ·ä½çç±»å ## æ¹å¼3. ä¸ä½¿ç¨ä»£çæ± ï¼ç´æ¥ç»è¯·æ±æå®ä»£ç ç´æ¥ç»request.proxiesèµå¼å³å¯ï¼ä¾å¦å¨ä¸è½½ä¸é´ä»¶éä½¿ç¨ ```python import feapder class TestProxy(feapder.AirSpider): def start_requests(self): yield feapder.Request("https://www.baidu.com") def download_midware(self, request): # è¿é使ç¨ä»£ç使ç¨å³å¯ request.proxies = {"https": "https://ip:port", "http": "http://ip:port"} return request def parse(self, request, response): print(response) ```