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

Python 网络爬虫 —— 代理服务器

一、会话(Session)

(一)核心逻辑

HTTP 本身无记忆,每次请求独立。会话(Session) 就是为解决这问题,让客户端(浏览器)和服务器 “记住” 交互状态(比如登录态 ),常用 Cookie 实现:服务器发 Cookie 给客户端存着,下次请求带着,服务器就知道 “是同一用户” 。

(二)创建会话(requests 实现 )

用 requests 库的 Session 类,自动维持会话、管理 Cookie,代码形式:

import requests
# 创建会话对象,后续用 s 发请求,自动带 Cookie
s = requests.Session()  

比如登录操作,先用 s.post() 提交账号密码,登录后的 Cookie 会存在 s 里,再用 s.get() 访问需要登录的页面,就自动带着登录态,不用手动传 Cookie 。

二、代理服务器

(一)是什么 & 作用

代理服务器是客户端和目标服务器中间的 “中转站” 。客户端发请求给代理,代理再转发给目标服务器,拿到响应后再回传给客户端。

作用超关键:

  • 防封禁:频繁爬取时,目标服务器会封客户端 IP ,用代理换 IP ,让服务器以为是不同用户请求。
  • 突破限制:有些资源限制访问来源,代理可伪装成允许的 IP 去请求。

(二)工作流程(对应图文 )

  1. 客户端(你写的爬虫)→ 发 URL 请求给代理服务器 。
  2. 代理服务器 → 转发请求给目标服务器 。
  3. 目标服务器 → 把响应给代理服务器 。
  4. 代理服务器 → 再把响应回传给客户端 。
    相当于代理 “替你” 和目标服务器沟通,隐藏真实 IP 。

(三)使用方法(requests 代码 )

在 get()/post() 里加 proxies 参数,传代理的 IP 等信息,代码形式:

import requests
# 构造代理字典,http/https 按需选,值是代理地址(IP:端口 )
proxy = {'http': '代理服务器地址:端口'}  
# 请求时传 proxies,走代理访问目标网址
r = requests.get('https://www.xxx.com/', proxies=proxy)  
print(r.text)

比如代理地址是 115.29.199.168:1188 ,就写成 proxy = {'http': '115.29.199.168:1188'} ,请求时带着它,数据就会走代理服务器转发 。

注意:免费代理有时效性,可能用着用着就失效,实际项目常用付费、稳定的代理~

这样,会话维持(靠 Session 自动管 Cookie )和代理服务器(当 “中转站” 防封禁 )的核心就讲清楚啦,代码怎么写、作用是啥,都能快速 get !

 

http://www.dtcms.com/a/283821.html

相关文章:

  • 阿里云-通义灵码:隐私保护机制—为数据安全筑起铜墙铁壁
  • Web3.0 实战项目、简历打造、精准投递+面试准备
  • MongoDB 与MySQL 及es的区别
  • 黑客知识-攻击
  • 数据仓库分层经典架构:ODS、DWD、DWS
  • 安卓 GoFasting(间歇性断食)v1.03.35.0708
  • python-字典、集合、序列切片、字符串操作(笔记)
  • cdh6.3.2的hive使用apache paimon格式只能创建不能写报错的问题
  • Thymeleaf 表单绑定与验证详解
  • Rabbitmq direct 模式与 finout区别
  • Apache Ignite 的 Pages Writes Throttling(页面写入节流)
  • C++ - 仿 RabbitMQ 实现消息队列--C++11 异步操作实现线程池
  • InfluxDB 3与Apache Parquet:打造高性能时序数据存储与分析解决方案
  • Apache DolphinScheduler介绍与部署
  • UE5 Nanite使用
  • 下班倒计时
  • 链路聚合实训
  • 管家婆价格折扣跟踪管理:查询、新增、修改、删除
  • JAVA中的Map集合
  • 【01背包】P1466 [USACO2.2] 集合 Subset Sums
  • 华为云容器产品分析
  • HTML表格基础
  • 【Linux】第一个小程序—进度条
  • HikariCP数据库连接池高性能优化实战指南
  • Spring Boot 参数校验:@Valid 与 @Validated
  • 线上协同办公时代:以开源AI大模型等工具培养网感,拥抱职业变革
  • 【前沿技术动态】【AI总结】Spring Boot 4.0 预览版深度解析:云原生时代的新里程碑
  • Fair-code介绍(Fair code)(一套新型软件模型:旨在“开源”“商业可持续性”中找到平衡)
  • Spring Boot Jackson 序列化常用配置详解
  • redis速记