在 Google Colab 和 Jupyter 中设置代理
好了,我们直接开始在 Google Colab 或 Jupyter 中运行代理吧——别再犹豫了。无论您是要抓取数据、绕过地理限制,还是只想保护一点隐私,代理都是您的首选。不过,要正确使用代理还是有诀窍的,尤其是在 Colab 和 Jupyter 等有时有其自身怪癖的平台上。
为什么要在 Colab 和 Jupyter 中使用代理?
设想 | 代理的好处 |
---|---|
网页抓取 | 避免IP禁令 |
访问受地理限制的 API | 解除内容屏蔽 |
匿名研究 | 掩盖你的数字足迹 |
选择代理源
现在,在您穿越互联网寻找代理之前,让我们先让它变得简单一些。 ProxyRoller 您的好帮手就在这儿——提供全新、免费的代理,随时可用。详情请见下文。
代理类型
类型 | 描述 | 典型用途 |
---|---|---|
HTTP/HTTPS | 标准网络代理 | 网页抓取、爬取 |
SOCKS4/SOCKS5 | 级别更低,支持更多协议 | 流媒体、P2P等 |
旋转 | 频繁更换IP | 避免速率限制 |
住宅 | 真实用户IP,更难屏蔽 | 抓取、自动化 |
对于大多数 Colab/Jupyter 工作,HTTP/HTTPS 代理就可以了。
从 ProxyRoller 获取免费代理
- 前往 ProxyRoller.
- 点击“获取免费代理”按钮。
- 复制代理列表——看起来像
ip:port
.
给澳大利亚人一点建议:测试您的代理,因为免费代理可能会变化无常,就像墨尔本的天气一样。
在 Google Colab 中配置代理
Colab 在虚拟机中运行,因此您需要指示 Python(及相关库)使用代理。以下是 Arvid 风格的操作方法:
设置 HTTP/HTTPS 代理 requests
import requests
proxies = {
'http': 'http://username:password@proxy_ip:proxy_port',
'https': 'http://username:password@proxy_ip:proxy_port'
}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.json())
- 如果您的代理不需要身份验证,请忽略
username:password@
.
在 Notebook 中全局设置代理
有时您希望所有内容都通过代理。设置环境变量:
import os
os.environ['http_proxy'] = 'http://proxy_ip:proxy_port'
os.environ['https_proxy'] = 'http://proxy_ip:proxy_port'
现在,任何尊重这些环境变量(请求、urllib 等)的库都将使用代理。
轮换代理
如果您像养鸡场里的野狗一样四处搜寻,请轮换您的代理以躲避禁令:
import random
proxy_list = [
'http://ip1:port1',
'http://ip2:port2',
'http://ip3:port3'
]
def get_random_proxy():
return {'http': random.choice(proxy_list), 'https': random.choice(proxy_list)}
for i in range(10):
proxies = get_random_proxy()
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.json())
在 Jupyter Notebook 中配置代理
和 Colab 差不多,兄弟。操作步骤如下:
为了 requests
和 urllib
import requests
proxies = {
'http': 'http://proxy_ip:proxy_port',
'https': 'http://proxy_ip:proxy_port'
}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.json())
对于系统范围的代理(Jupyter 内核)
import os
os.environ['HTTP_PROXY'] = 'http://proxy_ip:proxy_port'
os.environ['HTTPS_PROXY'] = 'http://proxy_ip:proxy_port'
对于 Selenium(无头浏览器)
如果您在 Jupyter 中运行 Selenium(有点强力的举动):
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
proxy_ip_port = 'proxy_ip:proxy_port'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy_ip_port}')
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://httpbin.org/ip')
比较代理方法
方法 | 范围 | 工具/库 | 用例 |
---|---|---|---|
requests 代理 |
按请求 | 请求,urllib3 | 抓取、API 调用 |
环境变量 | 全局(会话) | 所有图书馆(大多数) | 一致的代理使用 |
Selenium 代理 | 浏览器自动化 | 硒 | Web 自动化/抓取 |
测试你的代理
始终测试您的代理是否正常工作 - 否则,您可能相当于在数字世界中绕圈子。
import requests
proxies = {
'http': 'http://proxy_ip:proxy_port',
'https': 'http://proxy_ip:proxy_port'
}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print("Proxy IP:", response.json())
如果 IP 与代理匹配,则成功了。
常见陷阱(和快速修复)
问题 | 它看起来是什么样子 | 如何修复 |
---|---|---|
连接超时 | 请求挂起,无响应 | 尝试不同的代理 |
403/407 需要代理身份验证 | 身份验证错误 | 如果需要,请使用用户名/密码 |
代理在 Colab 中不起作用 | IP 没有变化,错误 | 检查环境变量 |
SSL 问题 | SSL 握手失败 | 使用 HTTP 或设置 verify=False |
有用的资源
好了,无需费力就能在 Colab 或 Jupyter 中让你的代理游戏顺利运行。如果你需要新的代理,请记住 ProxyRoller 始终处于打开状态,不会咬人。
评论 (0)
这里还没有评论,你可以成为第一个评论者!