三种常用Python-Scrapy 代码样例

1. 使用单个代理地址的代码示例:
```python
import requests
# 设置代理地址
proxy = {
'http': 'http://your_proxy_address',
'https': 'http://your_proxy_address'
}
# 发送请求时使用代理
response = requests.get('http://www.example.com', proxies=proxy)
# 处理响应数据
print(response.text)
```
上述代码使用了`requests`库,将代理地址设置为`proxy`字典中的`http`和`https`键对应的值。接下来,通过在请求中传递`proxies=proxy`参数,发送带有代理的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
}
# 发送请求时随机选择一个代理
proxy = get_random_proxy()
response = requests.get('http://www.example.com', proxies=proxy)
print(response.text)
```
在上述示例中,我们定义了一个函数`get_random_proxy`,该函数从代理池中获取一个随机代理地址。然后,使用获取到的代理地址构建`proxy`字典,并通过传递`proxies=proxy`参数,从代理池中随机选择一个代理发送请求。
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
}
# 发送请求时随机选择一个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)
```
上面代码中,我们定义了两个函数`get_random_ip`和`get_random_proxy`,分别从IP池和代理池中获取一个随机IP和代理地址。然后,我们使用`choice`函数从IP列表中随机选择一个IP,并通过在请求头中添加`X-Forwarded-For`字段指定该IP作为请求的来源IP。最后,通过传递`proxies=proxy`参数,随机选择一个代理发送请求。
这些代码示例可以帮助你在不同类型和不同情况下使用HTTP代理进行网络请求。根据你的具体需求,你可以根据这些示例进行修改和定制。