新手爬虫代理 IP 实操!Python 配置代理 IP 全教程,零基础直接复制运行-易代理
了解代理 IP 价值、类型、避坑方法后,新手最期待的就是实操:怎么用 Python 配置代理 IP?代码怎么写?怎么测试是否生效?今天从零基础出发,手把手教你 3 种主流 Python 爬虫库配置代理 IP,提供完整可直接复制的代码示例,附带详细注释和测试步骤,新手不用懂复杂原理,复制就能运行,快速实现代理 IP 爬虫。
一、准备工作:获取代理 IP 信息
实操前,先从正规服务商(如易代理)获取代理 IP 信息,包含:
IP 地址:如 123.45.67.89
端口:如 8080
账号密码(认证代理需要):如 user123、pass456
协议:HTTP/HTTPS/SOCKS5(常用 HTTP/HTTPS)
代理 IP 格式(新手常用):
无认证:
http://IP:端口有认证:
http://账号:密码@IP:端口
二、Requests 库配置代理 IP(新手最常用)
Requests 是 Python 爬虫最基础、最常用的库,语法简单、上手容易,适合新手入门。
1. 单次请求配置代理(灵活切换 IP)
适合每次请求换不同 IP,灵活度高。
python
运行
import requests# 1. 定义代理IP(替换为你的代理信息)proxies = {
"http": "http://账号:密码@IP:端口", # HTTP代理
"https": "http://账号:密码@IP:端口" # HTTPS代理}# 2. 测试URL(用于验证代理是否生效)test_url = "https://httpbin.org/ip"# 3. 发起请求,携带代理try:
response = requests.get(test_url, proxies=proxies, timeout=10)
response.raise_for_status() # 检查请求是否成功
print("代理IP生效!当前IP:", response.text)except requests.exceptions.RequestException as e:
print("请求失败:", e)2. 全局会话配置代理(持久生效)
适合需要保持会话、多次请求复用同一代理,避免重复配置。
python
运行
import requests# 1. 创建会话对象session = requests.Session()# 2. 配置全局代理(替换为你的代理信息)session.proxies = {
"http": "http://账号:密码@IP:端口",
"https": "http://账号:密码@IP:端口"}# 3. 测试请求test_url = "https://httpbin.org/ip"try:
response = session.get(test_url, timeout=10)
print("全局代理生效!当前IP:", response.text)except requests.exceptions.RequestException as e:
print("请求失败:", e)三、Selenium 库配置代理 IP(浏览器模拟爬虫)
Selenium 用于模拟浏览器操作,适合爬取 JavaScript 渲染的页面(如动态加载数据、登录页面),新手常用。
1. Chrome 浏览器配置代理 IP
python
运行
from selenium import webdriverfrom selenium.webdriver.chrome.options import Options# 1. 配置Chrome选项chrome_options = Options()# 2. 添加代理IP(替换为你的代理信息)proxy = "账号:密码@IP:端口"chrome_options.add_argument(f'--proxy-server=http://{proxy}')# 3. 忽略证书错误(可选,避免HTTPS报错)chrome_options.add_argument('--ignore-certificate-errors')# 4. 启动浏览器driver = webdriver.Chrome(options=chrome_options)# 5. 测试访问test_url = "https://httpbin.org/ip"driver.get(test_url)print("Selenium代理生效!当前IP:", driver.page_source)# 6. 关闭浏览器driver.quit()四、aiohttp 库配置代理 IP(异步爬虫,高效采集)
aiohttp 用于异步爬虫,适合高并发、大批量数据采集,效率远高于同步爬虫,新手进阶必学。
python
运行
import aiohttpimport asyncio# 1. 异步请求函数async def fetch_with_proxy():
# 2. 配置代理(替换为你的代理信息)
proxy = "http://账号:密码@IP:端口"
test_url = "https://httpbin.org/ip"
# 3. 创建异步会话
async with aiohttp.ClientSession() as session:
try:
# 4. 发起异步请求,携带代理
async with session.get(test_url, proxy=proxy, timeout=aiohttp.ClientTimeout(total=10)) as response:
print("异步代理生效!当前IP:", await response.text())
except Exception as e:
print("异步请求失败:", e)# 5. 运行异步任务if __name__ == "__main__":
asyncio.run(fetch_with_proxy())五、新手常见问题排查
1. 代理连接失败
检查 IP、端口、账号密码是否正确
确认代理 IP 是否在有效期内
测试本地网络是否能连通代理服务器
2. 能连接但被目标网站拒绝
代理 IP 被目标网站封禁,换一个 IP 重试
检查代理 IP 纯净度,避免污染 IP
降低请求频率,避免高频访问触发反爬
3. HTTPS 请求报错
确认代理支持 HTTPS 协议
添加忽略证书错误参数(Selenium)
检查代理 IP 是否支持 SSL 加密
六、新手爬虫代理池简单实现(自动切换 IP)
新手入门后,可简单实现代理池,自动切换 IP,提升爬虫稳定性。
python
运行
import requestsimport random# 1. 代理IP池(替换为你的多个代理IP)PROXY_POOL = [
"http://账号:密码@IP1:端口1",
"http://账号:密码@IP2:端口2",
"http://账号:密码@IP3:端口3"]# 2. 随机获取代理def get_random_proxy():
return {"http": random.choice(PROXY_POOL), "https": random.choice(PROXY_POOL)}# 3. 爬虫函数def crawl_with_proxy(url):
proxies = get_random_proxy()
try:
response = requests.get(url, proxies=proxies, timeout=10)
print(f"请求成功!当前IP:{proxies['http']}")
return response.text except requests.exceptions.RequestException as e:
print(f"请求失败,切换IP重试:{e}")
return crawl_with_proxy(url) # 失败递归重试# 4. 测试运行if __name__ == "__main__":
test_url = "https://httpbin.org/ip"
crawl_with_proxy(test_url)七、总结:新手爬虫代理 IP 实操核心
新手配置代理 IP,核心是选对库、写对格式、做好测试。Requests 适合简单爬虫,Selenium 适合浏览器模拟,aiohttp 适合异步高并发。代码不用死记,复制替换代理信息就能运行,重点理解代理配置逻辑和常见问题排查方法。
易代理提供新手专属代理 IP 套餐,适配各类爬虫场景,支持 HTTP/HTTPS/SOCKS5 协议,提供详细配置文档和 1 对 1 技术指导,新手不用踩坑,直接上手实操,快速掌握代理 IP 爬虫技能。