如何在 Google Colab 和 Jupyter 中使用代理

如何在 Google Colab 和 Jupyter 中使用代理

在 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 获取免费代理

  1. 前往 ProxyRoller.
  2. 点击“获取免费代理”按钮。
  3. 复制代理列表——看起来像 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 差不多,兄弟。操作步骤如下:

为了 requestsurllib

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 始终处于打开状态,不会咬人。

阿尔维德·沃拉尔

阿尔维德·沃拉尔

首席网络架构师

Arvid Warral 是土生土长的印度人,也是 ProxyRoller 强大而敏捷的网络架构的幕后推手。凭借在数字安全和代理管理领域超过 20 年的经验,他在开发满足隐私和数据安全动态需求的系统方面发挥了重要作用。Arvid Warral 在 ProxyRoller 的旅程始于一位充满热情的技术专家,他的创新解决方案将公司推向了行业的前沿。在他的职位上,他致力于确保 ProxyRoller 的产品对全球用户来说始终是尖端和可靠的。

评论 (0)

这里还没有评论,你可以成为第一个评论者!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注