Python 爬虫 · 第三方代理接入与合规使用

Python 学习第 36 天,非必要不要使用!!!!!!!

在爬虫过程中,我们常常需要大量访问一个网站,以便快速获取信息。但网站的服务器对于这类频繁的请求会有防御机制,也就是说,它会判定这样的行为不正常,将这个 IP 判定为 "爬虫" 后拉进黑名单,这样不光我们设置的爬虫程序失去作用,自己的账号也会被封掉。

如何避免被封号的风险呢?我们的应对方法是:接入第三方代理。


一、代理

代理通常分为:

**(1) HTTP / HTTPS 代理:**最常用,适配绝大多数网页爬虫,支持 http/https 请求

**(2) Socks5 代理:**底层转发,兼容性更强,可适配浏览器、Socket、部分加密请求

第三方代理按照 "IP 来源" 分,可以分为:

**(1) 数据中心代理(DC):**速度快、便宜、IP 多,但容易被识别为爬虫,适合爬取非敏感、公开、低频(新闻、博客、公开榜单)的场景

**(2) 住宅代理(Residential/ISP):**真实家庭宽带 IP,最像真人,被封概率低,但比较贵,适合需要爬取电商、社交、评论、登录态、高反爬的场景

**(3) 移动代理(4G/5G):**手机基站 IP,匿名性最高,但价格最贵,适合需要极限反爬、APP 爬虫、注册 / 养号的场景

按照 "IP 是否固定" 可分为:

**(1) 静态代理(固定 IP):**稳定、会话不掉、适合登录后长期爬,但极易被封,不能高频爬取,适合每天少量爬取,且需要保持登录状态

**(2) 动态代理(每次 / 每分钟换 IP):**抗封强、量大、适合大规模采集,但会话比较难保持,速度波动有点大,适用于需要高频、大批量、不登录(主流爬虫首选)爬取的场景

**(3) 隧道代理(只给你一个入口,后端自动换 IP):**最简单,不用管 IP 池,一行配置搞定,但有点贵、可控性弱,适合不想写代理池、快速开发、长期项目的场景

获取代理的渠道很多,但尽量选择官方大厂的代理,选择高匿名性的 IP,这样才能保证自己的账号安全。

二、接入代理流程

1. 安装包

复制代码
pip install requests

2. 导入包

复制代码
import requests

3. 找到代理

我们用免费代理展示:理想下选用 "高匿开发代理" 中的代理地址(但实际上很难在免费的代理中找到可用的,所以也可以选择其他的)。我们需要复制的信息有 IP 地址、PORT 接口,挑选标准可以看 "响应速度(秒)",注意:代理算是中间商,且免费的代理一般会比我们正常请求要慢,如果一个 IP 不行,就换另一个。

4. 接入及其他操作

(1) 设置目标网址

复制代码
url = "https://www.baidu.com/"

(2) 设置第三方代理信息,格式:变量名 = {"协议名":"协议名://IP:PORT", "协议名":"协议名://IP:PORT", ......}

复制代码
proxy = {
    "http":"http://IP地址:PORT接口",
    "https":"http://IP地址:PORT接口"
}

(3) 在请求中接入代理

复制代码
res = requests.get(url, proxies = proxy)
res.encoding = "utf-8"
print(res.text)

运行结果出现 TimeoutError,说明所用代理可能出现已失效、IP 被封禁、端口错误、网络不通、免费代理不稳定等问题,此时就需要在步骤 (2) 的代码中换一个代理


示例仅为格式演示,请勿使用来源不明的免费代理,避免安全风险。

注意合法爬虫

相关推荐
栈帧之外37 分钟前
【C++】STL之set
开发语言·c++
霸道流氓气质1 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
catchadmin1 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
开发语言·php
jimy13 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++
Python大数据分析@3 小时前
通过 MCP 实现 AI Agent自动化数据采集
运维·人工智能·爬虫·自动化
狗凯之家源码网3 小时前
纯 PHP+MySQL 应用市场系统源码实测!
开发语言·mysql·php
ch6233 小时前
《AI 辅助编程实战:从零跑通一个 Excel 报表生成脚本的踩坑与复盘》
人工智能·python
dishugj3 小时前
系统架构风险点、敏感点和权衡点的概念和区分
java·开发语言
geovindu3 小时前
rust:Memento Pattern(续)
开发语言·后端·设计模式·rust·行为模式·备忘录模
import_random3 小时前
[python]conda和pip(区别和联系2)
python