三種常用Python-Scrapy 代碼樣例

1. 使用單個代理地址的代碼示例:
?
```python
import requests
?
# 設(shè)置代理地址
proxy = {
????'http': 'http://your_proxy_address',
????'https': 'http://your_proxy_address'
}
?
# 發(fā)送請求時使用代理
response = requests.get('http://www.example.com', proxies=proxy)
?
# 處理響應(yīng)數(shù)據(jù)
print(response.text)
```
?
上述代碼使用了`requests`庫,將代理地址設(shè)置為`proxy`字典中的`http`和`https`鍵對應(yīng)的值。接下來,通過在請求中傳遞`proxies=proxy`參數(shù),發(fā)送帶有代理的HTTP請求。
?
2. 使用代理池的代碼示例:
?
```python
import requests
?
# 從代理池獲取一個隨機代理地址
def get_random_proxy():
????response = requests.get('http://your_proxy_pool_address/get_random_proxy')
????proxy = response.text.strip()
????return {
????????'http': 'http://' + proxy,
????????'https': 'http://' + proxy
????}
?
# 發(fā)送請求時隨機選擇一個代理
proxy = get_random_proxy()
response = requests.get('http://www.example.com', proxies=proxy)
print(response.text)
```
?
在上述示例中,我們定義了一個函數(shù)`get_random_proxy`,該函數(shù)從代理池中獲取一個隨機代理地址。然后,使用獲取到的代理地址構(gòu)建`proxy`字典,并通過傳遞`proxies=proxy`參數(shù),從代理池中隨機選擇一個代理發(fā)送請求。
?
3. 使用IP池+代理池的代碼示例:
?
```python
import requests
from random import choice
?
# 從IP池獲取一個隨機IP
def get_random_ip():
????response = requests.get('http://your_ip_pool_address')
????ip_list = response.json()
????return choice(ip_list)
?
# 從代理池獲取一個隨機代理地址
def get_random_proxy():
????response = requests.get('http://your_proxy_pool_address/get_random_proxy')
????proxy = response.text.strip()
????return {
????????'http': 'http://' + proxy,
????????'https': 'http://' + proxy
????}
?
# 發(fā)送請求時隨機選擇一個IP和代理
ip = get_random_ip()
proxy = get_random_proxy()
response = requests.get('http://www.example.com', proxies=proxy, headers={'X-Forwarded-For': ip})
print(response.text)
```
?
上面代碼中,我們定義了兩個函數(shù)`get_random_ip`和`get_random_proxy`,分別從IP池和代理池中獲取一個隨機IP和代理地址。然后,我們使用`choice`函數(shù)從IP列表中隨機選擇一個IP,并通過在請求頭中添加`X-Forwarded-For`字段指定該IP作為請求的來源IP。最后,通過傳遞`proxies=proxy`參數(shù),隨機選擇一個代理發(fā)送請求。
?
這些代碼示例可以幫助你在不同類型和不同情況下使用HTTP代理進行網(wǎng)絡(luò)請求。根據(jù)你的具體需求,你可以根據(jù)這些示例進行修改和定制。