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.tpcf.cn/bicheng/89411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue在线预览Excel和Docx格式文件

前提:本次示例基于Vue2.x,所用插件为Vue-Office。 一、Vue-Office 插件简介 Vue-Office 是一个一站式解决方案,支持多种 Office 文件格式的在线预览,包括: Word(.docx)Excel(.xlsx、…

提升(Boosting)及 Python 示例

咱们结合这张图,把 “提升” 想象成 “做错题本 请老师补课” 的过程:第一波数据(最上面的圆圈):“第一次作业”假设你第一次做 100 道数学题(图中圆圈里的绿点白点代表不同的题),做…

【生产实践】Linux中NAS挂载丢失后提示“过旧的文件句柄”错误解决

太长不看版: 问题:nas挂载在系统里掉了,使用df或ls访问目录提示过旧的文件句柄解决过程: 和机房联系,发现NAS服务器重启了重新执行mount发现挂不上先umount掉当前挂载,再重新执行mount命令问题解决 umount …

JUnit4

JUnit4 介绍JUnit 是 Java 编程语言的单元测试框架,用于编写和运行可重复的自动化测试。JUnit 特点:JUnit 是一个开放的资源框架,用于编写和运行测试。提供注解来识别测试方法。提供断言来测试预期结果。JUnit 测试允许你编写代码更快&#x…

Python-TCP编程-UDP编程-SocketServer-IO各种概念及多路复用-asyncio-学习笔记

序 欠4前年的一份笔记 ,献给今后的自己。 网络编程 Socket介绍 Socket套接字 Python中提供socket.py标准库,非常底层的接口库。 Socket是一种通用的网络编程接口,和网络层次没有一一对应的关系。 协议族 AF表示Address Family,用于…

Mybatis-开发一个类似mybatisplus的mybatis扩展,该怎么入手?

开发一个类似mybatisplus的mybatis扩展,该怎么入手? 要开发一个类似于 MyBatis-Plus 的 MyBatis 扩展框架,你需要从以下几个核心方面入手,逐步构建出一个功能完整、易用性强、兼容性好的增强型 MyBatis 框架。🧱 一、整…

深入了解linux系统—— 信号的捕捉

前言 信号从产生到处理,可以分为信号产生、信号保存、信号捕捉三个阶段;了解了信号产生和保存,现在来深入了解信号捕捉。 信号捕捉 对于1-31号普通信号,进程可以立即处理,也可以不立即处理而是在合适的时候处理&#x…

twikitFKS: 基于 twikit 2.3.1 的改进版本

twikitFKS: 基于 twikit 2.3.1 的改进版本 项目概述 关于 twikit twikit 是一个优秀的 Twitter API 爬虫库,它的核心优势在于无需 API Key即可访问 Twitter 功能。通过网页爬虫技术,twikit 实现了: 发布推文和媒体内容搜索推文和用户获取…

C Primer Plus 第6版 编程练习——第9章(下)

7.编写一个函数,从标准输入中读取字符,直到遇到文件结尾。程序要报告每个字符是否是字母。如果是,还要报告该字母在字母表中的数值位置。例如,c和C在字母表中的位置都是3。合并一个函数,以一个字符作为参数&#xff0c…

如何用文思助手改好一篇烂材料

在日常工作中,我们常常会遇到这样的问题:因为工作要使用到之前写的文章再看发现内容杂乱无章、或者收到的一些返稿内容质量差,不修改无法使用。但其实它们可能只是缺少了系统性的梳理与打磨。今天我们就来聊一聊,如何对一些不满意…

VSCODE常规设置

摘要:用于新下载的vscode设置一些个人化的操作在 "Files: Auto Save" 下拉菜单中,选择你想要的自动保存模式。常见的选项包括:"off":禁用自动保存。 "afterDelay":在你停止编辑一段时间…

2025秋招突围战:AI智能监考如何重构远程笔试公平防线?

2025秋招季即将来临,企业校招规模预计突破百万量级,远程笔试成为主流筛选方式。然而,传统监考模式暴露出作弊行为难追溯、人力成本过高、数据维度单一等痛点,让HR陷入“效率与公平”的两难困境。牛客AI智能监考系统,通…

Python 基础语法与数据类型(十三) - 实例方法、类方法、静态方法

文章目录1. 实例方法 (Instance Methods)1.1 特点与语法1.2 实例方法示例2. 类方法 (Class Methods)2.1 特点与语法2.2 类方法示例3. 静态方法 (Static Methods)3.1 特点与语法3.2 静态方法示例4. 三种方法的对比总结总结练习题练习题答案创作不易,请各位看官顺手点…

Wireshark的安装和基本使用

文章目录一、Wireshark介绍二、Wireshark安装三、Wireshark讲解1.界面介绍(1)分组列表(2)分组详情(3)分组字节流一、Wireshark介绍 Wireshark 是一款开源的网络协议分析工具,能够捕获、过滤和分…

[yotroy.cool] Git 历史迁移笔记:将 Git 项目嵌入另一个仓库子目录中(保留提交记录)

个人博客https://www.yotroy.cool/,感谢关注~ 图片资源可能显示不全,请前往博客查看哦! 说来惭愧,这篇是AI帮助我解决实际问题后,又生成的一篇博客,效率特别高。 在开发中,我们常会…

91套商业策划创业融资计划书PPT模版

创业融资计划书PPT模版,商业项目技术书PPT模版,商业创业计划书,商业融资企业宣传PPT模版,活动策划方案书PPT模版,IOS风格商业计划书PPT模版 91套商业策划创业融资计划书PPT模版:https://pan.quark.cn/s/739…

探秘阿里云通义九子:解锁AI无限可能

通义九子初印象在当今人工智能飞速发展的时代,阿里云通义九子宛如一颗璀璨的明星,闪耀在 AI 的浩瀚天空中。作为阿里云推出的一系列强大的人工智能模型,通义九子在自然语言处理、图像生成、智能客服等多个领域展现出了卓越的能力,…

Python网络爬虫之requests库

目录 一.网络爬虫的介绍 1.网络爬虫库 2.robot.txt规则 二.requests库 1.requests库的安装 2.get()函数 3.Response对象 Response的属性 设置编码 返回网页内容 text() content() 三.提交信息到网页 post()函数 四.会话与代理服务器 一.网络爬虫的介绍 1.网络爬虫…

区块链技术详解:从原理到应用

引言 区块链作为一项颠覆性技术,已从加密货币的基石演变为重塑多个行业的创新引擎。本文旨在深入解析其核心原理、关键特性、技术架构、主流应用及未来挑战。一、 区块链核心概念:超越加密货币的分布式账本 本质定义: 区块链是一个去中心化、…

用Finalshell连接服务器后出现文件目录不显示,且刷新报错空指针问题记录

修改SSH配置‌编辑sshd_config‌使用管理员权限编辑/etc/ssh/sshd_config文件,找到Subsystem相关配置。原配置为Subsystem sftp /usr/libexec/openssh/sftp-server使用“i”编辑文件将修改为Subsystem sftp internal-sftp修改完成后使用Esc命令,退出编辑…