您当前的位置: 首页 >  爬虫

暂无认证

  • 15浏览

    0关注

    93840博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【爬虫技能树】㈣、request.session()之应用场景

发布时间:2022-08-03 11:27:30 ,浏览量:15

目录
  • 简介
  • 思路
  • 实现
  • 最后
有粉丝问到这个方法,不知如何回答,因为市面上的网站几乎都做了风控,如果单靠这种方法实现登录,是很难的,比如说表单中的加密参数,不懂Js连门槛都入不了。我特意在本地搭了一个web,仅供参考! 简介

request.session()这个方法可以保存上次请求时的Cookie,有利于我们在登录场景中,post得到Cookie后,可直接请求网页,无需登录。 Cookie:由服务器产生,浏览器收到请求后保存在本地,当再次访问时,会自动带上Cookie,这样服务器就能通过Cookie来判断用户!

思路
  • 首先Post提交表单数据,将登录信息给到服务器,通过之后拿到登录后的Cookie
  • 利用session保存登录后的Cookie,再请求登录后的Url,拿到我们需要的数据
实现

获取登录后的Cookie

import requests

url = "http://127.0.0.1:8000/login/" # 登录页 header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" } # 请求头 session = requests.Session() # 创建session postData = {'usm': 'fun', 'pwd': 'fun', } #  表单数据 res = session.post(url,data=postData,headers=header) print(res) # 返回状态码 

在这里插入图片描述 登录成功

请求登录后的网页

import requests


url = "http://127.0.0.1:8000/login/" # 登录页 headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" } session = requests.Session() # 创建session postData = {'usm': 'fun', 'pwd': 'fun', } #  表单数据 res = session.post(url,data=postData,headers=headers) print(res) # 返回状态码 # 请求登录后的页面 response = session.get('http://127.0.0.1:8000/login/next_step/select/', headers=header) print(response.text) 

在这里插入图片描述 这里请求了一个查询页,返回正确的网页源码,可能大家会有所疑问,要是不带上Cookie直接请求会返回什么?为了打消这个疑问,展示:

# 请求登录后的页面 import request
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36", } response = requests.get('http://127.0.0.1:8000/login/next_step/select/', headers=headers) print(response.text) #返回网页文本 

在这里插入图片描述 很显然,直接请求返回了登录页的源码,告诉我们必须通过登录才能请求,所以Cookie是必不可少的,它是识别用户身份的重要纽带。

最后

点关注不迷路,本文若对你有帮助,烦请三连支持一下 ❤️❤️❤️ 各位的支持和认可就是我最大的动力❤️❤️❤️

在这里插入图片描述

关注
打赏
1655258400
查看更多评论
立即登录/注册

微信扫码登录

0.2420s