可狱可囚的爬虫系列课程 13:Requests使用代理IP

news/2025/2/25 7:51:58

一、什么是代理 IP

代理 IP(Proxy IP)是一个充当“中间人”的服务器IP地址,用于代替用户设备(如电脑、手机等)直接与目标网站或服务通信。用户通过代理IP访问互联网时,目标网站看到的是代理服务器的IP地址,而非用户的真实IP地址。

二、主要用途

  1. 隐藏真实IP:保护用户隐私,防止真实地理位置或网络身份被追踪。
  2. 绕过访问限制:访问某些地区或网络环境限制的内容(如流媒体、社交媒体)。
  3. 提高安全防护:在公共Wi-Fi等不安全网络中,代理可提供额外的隐私保护。
  4. 网络爬虫/自动化:通过切换不同代理IP,避免因频繁访问被封禁。
  5. 企业网络管理:企业可通过代理统一管理员工上网行为或缓存数据。

三、代理类型

  1. 数据中心代理:来自数据中心的IP,速度快但易被识别。
  2. 住宅代理:模拟真实家庭IP,更难被封锁。
  3. 透明代理:不隐藏用户IP,仅用于缓存或过滤内容。

四、注意事项

  1. 合法合规:某些国家/平台禁止使用代理访问特定内容,需遵守法律法规。
  2. 信任风险:低质量代理可能记录用户数据,建议选择可信服务商。
  3. 速度影响:代理服务器距离或负载可能降低网络速度。

五、爬虫如何使用代理 IP

以某某网为例,先用代码让其对我所处环境的网络 IP 进行封禁(此网站只封禁 24 小时)。
python">import requests

Link = 'https://www.douban.com/doulist/3936288/'
Headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36'
}
while True:
    response = requests.get(url=Link, headers=Headers)
    if response.status_code == 200:
        print(f'状态码:{response.status_code}')
        print(response.text)
    else:
        print('已封禁')
        break

我们先找寻一个能提供代理 IP 的网站,这里作者使用的是站某某,站某某不定期会提供一些免费的 IP,不一定每个代理 IP 都生效,多轮换几个尝试一下

在这里插入图片描述

接下来我们按照 requests 模块提供的方式,进行代理 IP 的配置,此链接便是 requests 官文描述的如何使用代理 IP:https://requests.readthedocs.io/projects/cn/zh-cn/latest/user/advanced.html#proxies

配置代码如下,代理 IP 要以字典的形式配置进 requests 的 proxies 参数中,代理 IP 的字典中有两个键值对,值均为 ip 和 port 构造出来的 http 协议的链接,键分别为 http、https,最终成功突破 IP 地址的封禁。

python">import requests

Link = 'https://www.douban.com/doulist/3936288/'
Headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36'
}
# 请将 IP 和 Port 构造成以下形式
ip, port = '220.169.194.49', '12666'
Proxies = {
    'http': f'http://{ip}:{port}',
    'https': f'http://{ip}:{port}'
}
response = requests.get(url=Link, headers=Headers, proxies=Proxies)
print(response.status_code)
print(response.text)


http://www.niftyadmin.cn/n/5865209.html

相关文章

大厂数据仓库数仓建模面试题及参考答案

目录 什么是数据仓库,和数据库有什么区别? 数据仓库的基本原理是什么? 数据仓库架构是怎样的? 数据仓库分层(层级划分),每层做什么?分层的好处是什么?数据分层是根据什么?数仓分层的原则与思路是什么? 数仓建模常用模型有哪些?区别、优缺点是什么?星型模型和雪…

Spark(2.2)输出重定向,管道运算符与压缩解压

一.输出重定向 二.管道运算符 三.压缩和解压 一.输出重定向 1.覆盖原来的: 命令> echo aaa > a.txt。会把aaa这三个字符写入a.txt文件,并把之前的内容全部覆盖掉(等价于先删除了a.txt的内容,再写入aaa。 2.输出重定向(…

Ansible剧本-playbook

Ansible剧本-playbook 1 playbook基础1.1 简介1.2 playbook的组成结构Task 任务列表任务报错,如何继续执行响应事件Handler 1.3 常用选项执行playbookplaybook查询帮助信息校验playbook语法测试playbook能否正常运行 2 变量 的定义方式2.1 定义规则2.2 vars 变量2.3…

SEO长尾优化实战技巧

内容概要 在搜索引擎优化(SEO)实践中,长尾关键词的精细化运营已成为提升网站精准流量与搜索排名稳定性的关键策略。相较于竞争激烈的大词,长尾关键词凭借其搜索意图明确、转化率高且流量波动小的特性,能够有效覆盖用户…

(论文)使ConvNeXt模型适应语音数据集上的音频分类

《Adapting a ConvNeXt Model to Audio Classification on AudioSet》 摘要 在计算机视觉中,ConvNeXt 等卷积神经网络 (CNN) 已经能够超越最先进的转换器,部分归功于深度可分离卷积 (DSC)。DSC 作为常规卷…

点击修改按钮图片显示有问题

问题可能出在表单数据的初始化上。在 ave-form.vue 中,我们需要处理一下从后端返回的图片数据,因为它们可能是 JSON 字符串格式。 vue:src/views/tools/fake-strategy/components/ave-form.vue// ... existing code ...Watch(value)watchValue(v: any) …

Java 大视界 -- 总结与展望:Java 大数据领域的新征程与无限可能(96)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

echart实现自写下载图片按钮

需求&#xff1a;点击自己写的下载按钮&#xff0c;下载echart提供的图片代码 <el-button style"margin-left:10px;" type"primary" plain click"saveImgae" >导出</el-button><div class"z-echartbox" style"he…