当前位置: 首页 > news >正文

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

一、什么是代理 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 小时)。
import requestsLink = '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 地址的封禁。

import requestsLink = '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.lryc.cn/news/542265.html

相关文章:

  • DBeaver下载安装及数据库连接(MySQL)
  • 国产开源PDF解析工具MinerU
  • 消息中间件的开源实现
  • AcWing 299 裁剪序列
  • P2889 [USACO07NOV] Milking Time S
  • 基于Spring Boot的健康医院门诊在线挂号系统设与实现(LW+源码+讲解)
  • PyTorch-基础(CUDA、Dataset、transforms、卷积神经网络、VGG16)
  • 复现论文:DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization
  • 6.将cr打包成网络服务|使用postman进行测试|编写oj_server的服务路由功能(C++)
  • 基于SpringBoot + Vue的共享汽车(单车)管理系统设计与实现+毕业论文+开题报告+指导搭建视频
  • Day54(补)【AI思考】-SOA,Web服务以及无状态分步解析与示例说明
  • 回溯算法之组合和排列问题
  • gihub上适合练手的Python项目
  • 解锁CSnakes:.NET与Python的融合魔法
  • Python常见面试题的详解16
  • 建筑兔零基础自学python记录29|实战词云可视化项目——分人物阵营词云(上)7
  • Vi 编辑器基本使用指南
  • 22、《Spring Boot消息队列:RabbitMQ延迟队列与死信队列深度解析》
  • linux 命令+相关配置记录(持续更新...)
  • ssh工具
  • LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI诗词数据分析师
  • Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(二)
  • 基于CentOS7安装kubesphere和Kubernetes并接入外部ES收集日志
  • 软考教材重点内容 信息安全工程师 第17章 网络安全应急响应技术原理与应用
  • 使用 DeepSeek + OmniParser v2 + UIAutomation 实现 GUI 应用自动化测试的探索
  • Spring Security面试题
  • 从零开始构建基于DeepSeek的智能客服系统
  • Linux故障排查和性能优化面试题及参考答案
  • 【无人集群系列---大疆无人集群技术进展、技术路线与未来发展方向】
  • 【亲测有效】百度Ueditor富文本编辑器添加插入视频、视频不显示、和插入视频后二次编辑视频标签不显示,显示成img标签,二次保存视频被替换问题,解决方案