python爬虫 模拟登录人人网过程解析

作者:Tanglaoer 时间:2023-06-18 18:42:19 

requests 提供了一个叫做session类,来实现客户端和服务端的会话保持

使用方法

1.实例化一个session对象

2.让session发送get或者post请求


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

下面就用人人网来实战一下


# 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能不能够访问到只有登录才能访问的页面,当然是可以的

请看代码


# 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 中也有一个参数用来传递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)

来源:https://www.cnblogs.com/tangkaishou/p/10249635.html

标签:python,爬虫,模拟,登录
0
投稿

猜你喜欢

  • 牢不可破的九宫格布局

    2009-07-24 12:40:00
  • Python简单实现词云图代码及步骤解析

    2021-05-13 00:25:52
  • Go语言k8s kubernetes使用leader election实现选举

    2024-04-26 17:20:53
  • JS实现炫酷雪花飘落效果

    2024-04-16 10:36:54
  • Python实现12306火车票抢票系统

    2023-09-30 01:33:31
  • 如何做一个可以让人家申请使用的计数器?

    2010-07-11 21:17:00
  • 使用Docker部署ASP.NET Core程序

    2024-06-05 09:24:56
  • 浅谈Python3中print函数的换行

    2023-12-15 18:24:31
  • vue 二维码长按保存和复制内容操作

    2024-04-27 16:04:39
  • vue-router懒加载速度缓慢问题及解决方法

    2024-04-27 16:07:23
  • laravel接管Dingo-api和默认的错误处理方式

    2023-11-21 23:29:37
  • python列表[list]和元组(tuple)详情

    2022-05-23 01:14:31
  • 解决golang中container/list包中的坑

    2024-05-21 10:25:42
  • Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统

    2024-01-26 14:46:02
  • Mysql保持现有内容在后面增加内容的sql语句

    2024-01-21 07:11:01
  • python str字符串转uuid实例

    2021-12-31 20:15:54
  • Python实现连接FTP并下载文件夹

    2021-02-28 01:56:26
  • Python matplotlib实用绘图技巧汇总

    2023-10-05 01:12:39
  • 吴恩达机器学习练习:神经网络(反向传播)

    2021-12-13 05:13:25
  • 如何得到数据库中所有表名 表字段及字段中文描述

    2012-01-05 18:56:44
  • asp之家 网络编程 m.aspxhome.com