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