1、 安装引用PySocks
PySocks 是一个 Python 库,支持在 Python 脚本或应用程序中使用 SOCKS 代理(SOCKS4、SOCKS4a 和 SOCKS5)。
pip install PySocks
2、单线程中设置SOCKS代理
import socks
# 配置默认的SOCKS代理
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 代理端口)
# 现在,所有的网络操作将使用配置的SOCKS代理
# 例如,您可以使用requests库与SOCKS代理进行如下操作:
import requests
response = requests.get("https://example.com")
print(response.text)
# 在完成后不要忘记关闭代理
socks.close()
如不使用socks.set_default_proxy()
代理,还可以在requests中使用proxies指定代理,代码如下,
import requests
# 代理服务器的地址和端口
proxy_host = '127.0.0.1'
proxy_port = 8080
# 目标网址
url = 'https://www.baidu.com'
# 代理服务器的认证信息(如果需要)
# proxy_auth = ('代理用户名', '代理密码')
# 创建一个代理字典
proxies = {
'http': f'http://{proxy_host}:{proxy_port}',
'https': f'https://{proxy_host}:{proxy_port}'
}
# 发送请求
response = requests.get(url, proxies=proxies)
# 输出响应内容
print(response.text)
3、多线程中设置SOCKS代理
import socks
import threading
# 设置代理信息
proxy_host = "127.0.0.1"
proxy_port = 8080
def set_proxy():
# 在每个线程中设置代理
socks.set_default_proxy(socks.SOCKS5, proxy_host, proxy_port)
socket.socket = socks.socksocket # 将socket模块替换为socks模块
def your_thread_function():
# 在线程内调用set_proxy以设置代理
set_proxy()
# 在这里执行你的多线程任务
# 创建多个线程
threads = []
for i in range(5): # 创建5个线程,你可以根据需要修改数量
thread = threading.Thread(target=your_thread_function)
threads.append(thread)
thread.start()
# 等待所有线程完成
for thread in threads:
thread.join()
4、多进程中设置SOCKS代理
import socks
import socket
from multiprocessing import Process
# 代理服务器的地址和端口
proxy_host = '127.0.0.1'
proxy_port = 8080
# 设置默认代理
def set_default_proxy():
socks.set_default_proxy(socks.SOCKS5, proxy_host, proxy_port)
socket.socket = socks.socksocket
# 目标网址
url = 'https://www.baidu.com'
# 创建多个进程
num_processes = 4
def worker_process():
# 在每个进程中设置默认代理
set_default_proxy()
# 发送请求
import requests
response = requests.get(url)
# 输出响应内容
print(response.text)
processes = []
for _ in range(num_processes):
process = Process(target=worker_process)
processes.append(process)
process.start()
for process in processes:
process.join()