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()