Python爬虫模拟登录人人网:Session与Cookie两种实现方式

Ruby
Ruby
发布时间:2026-10-13 | 4人浏览过
原创

本文详解Python爬虫中模拟登录人人网的两种核心方法。首先介绍使用requests.Session()类自动维持会话状态,通过POST提交表单数据实现登录并抓取个人主页;其次演示如何手动提取并传递Cookie,分别通过Headers和Cookies参数访问受限页面。代码包含完整登录流程与本地保存逻辑,适用于学习爬虫会话保持机制。

使用Session维持登录状态

在Python的requests库中,提供了一个名为Session的类,专门用于维持客户端与服务器之间的会话状态,从而简化需要登录或保持连接的操作。

具体使用步骤如下:

第一步,实例化一个Session对象;

第二步,利用该Session对象发送GET或POST请求。


session = requests.session()
session.get(url,headers)

人人网登录实战:Session方式

接下来,我们将以人人网为例进行实战演示。


# coding=utf-8
import requests
session = requests.session()
# 登录的表单url
post_url = "http://www.renren.com/PLogin.do"
post_data = {"email": "your_email", "password": "your_password"}
headers = {
  "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
}
# 使用session发送post请求,cookie保存在其中
session.post(post_url, data=post_data, headers=headers)
# 在使用session进行请求登陆之后才能访问的地址
# 这是个人首页url
r = session.get("http://www.renren.com/327550088/profile", headers=headers)
# 保存页面到本地
with open("renren1.html", "w", encoding="utf-8") as f:
  f.write(r.content.decode('utf-8'))

通过以上步骤,我们可以成功模拟登录人人网,并获取个人首页信息,最终将页面内容保存至本地文件。

手动传递Cookie访问受限页面

实际上,网站记录登录状态的核心机制是Cookie中携带的身份信息。如果我们能在发送请求时手动带上已登录的Cookie,同样可以访问那些仅限登录用户查看的页面。

通过Headers传递Cookie

具体实现代码如下:


# coding=utf-8
import requests
headers = {
  "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36",
  "Cookie":"你的登录cookie"
}
r = requests.get("http://www.renren.com/327550088/profile",headers=headers)
#保存页面
with open("renren2.html","w",encoding="utf-8") as f:
  f.write(r.content.decode())

从代码中可以看出,Cookie可以直接放置在Headers字典中。值得注意的是,requests库还提供了一个专门的参数cookies,用于直接传递Cookie数据,这提供了另一种更简洁的处理方式。

通过Cookies参数传递Cookie

使用cookies参数的实现代码如下:


# 字典生成器的用法
cookies = {i.split("=")[0]:i.split("=")[1] for i in cookies.split("; ")}
print(cookies)
r = requests.get("http://www.renren.com/327550088/profile",headers=headers,cookies=cookies)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表