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

发布于:2025-07-18 ⋅ 阅读:(18) ⋅ 点赞:(0)

一、会话(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 !

 


网站公告

今日签到

点亮在社区的每一天
去签到