python requests实现登录

登录爬虫案例

基于requests模块的登录

使用requests模块发送登录请求,并将响应后的cookie添加在后续需要登录的数据请求中,实现登录。

案例1

scrape2 url:https://login2.scrape.center/login
登录接口解析
在这里插入图片描述
在这里插入图片描述
无参数加密情况

# coding=utf-8

base_url = 'https://login2.scrape.center/'
index_url = 'https://login2.scrape.center/'

import requests

login_data = {
    'username': '', # 用户名
    'password': '', # 密码
} # 默认都为admin

# 登录的核心为获取到登录后的cookies
# 可根据加密的困难成度选择浏览器模拟登录或者代码登录
# 本例中使用代码登录,按照登录页面的提示,使用post请求登录
# 通过观察登录页面的源代码,发现登录的url为https://login2.scrape.center/login
# 通过观察登录页面的源代码,发现登录的表单数据为username和password

# 构建普通登录请求,注意需要将登录时将requests的允许重定向allow_redirects设置为False
response = requests.post(base_url + 'login', data=login_data, allow_redirects=False)
stauts = response.status_code
resp_html = response.text
logined_cookies = response.cookies
print(stauts)
print(logined_cookies)
# 将cookies输出为字典
print(dict(logined_cookies))
# 结果===>登录成功
# 302
# <RequestsCookieJar[<Cookie sessionid=m97f80sv0s9kd80o25g9t3iomxa30gdk for login2.scrape.center/>]>
# {'sessionid': 'm97f80sv0s9kd80o25g9t3iomxa30gdk'}

# 登录后获取详情页
data_response = requests.get(index_url, cookies=logined_cookies)
data_status = data_response.status_code
data_html = data_response.text
print(data_status)
print(data_html)
# 结果===>数据获取成功
# 200
# <html lang="en">...</html>


# 以上代码可优化,使用requests.Session()方法,将cookies保存在session中,后续请求直接使用session即可
# 需要注意的是,因为后的cookies会有过期时间,所以需要定时更新cookies

# 使用session优化代码
session = requests.Session()
session.post(base_url + 'login', data=login_data)
data_response = session.get(index_url)
data_status = data_response.status_code
data_html = data_response.text
print(data_status)
print(data_html)
# 结果===>数据获取成功

直接通过response.cookies获取到登录后的cookie,并将其放在后续的数据请求中,即可实现登录请求。

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jesse_Kyrie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值