Python3 Post登录并且保存cookie登录其他页面的方法

yizhihongxing

下面我将为你详细讲解 “Python3 Post登录并且保存cookie登录其他页面的方法”。

简介

在web爬虫开发过程中,登录并保持会话状态是常见的需求。本文主要讲解如何使用Python3模拟post请求登录,并在登录后保持会话状态,实现cookie重用登录其他页面。

1. 实现登录

首先,我们需要发送登录请求以获得有效的cookie,首先需要构建登录表单信息,并向login url发送POST请求,代码如下:

import requests 

login_data = {'username': 'your_username', 'password': 'your_password'}
login_url = 'http://www.example.com/login'

response = requests.post(login_url, data=login_data)

其中,'http://www.example.com/login'是你自己网站登录的url地址。 login_data是你提交表单时的所有参数,格式为字典。requests.post方法会返回一个Response对象,其中包含服务器响应的所有内容。

为了验证登录是否成功,可以通过打印response.text查看响应内容。如果登录成功,那么程序将接下来的请求自动使用正确的cookie。

2. 使用cookies访问受限页面

restricted_page_url = 'http://www.example.com/restricted_page'
response = requests.get(restricted_page_url, cookies=response.cookies)

上面代码中,restricted_page_url是需要使用已登录的cookies才能访问的页面url。通过cookies参数将Response对象中的cookie传递给GET请求。这里使用了response.cookies属性从一次请求中获取所有cookie,不需要手动设置cookie。

如果需要访问更多的需要登录认证的页面,只需要重复上述步骤即可。

示例说明

我们以模拟登录拉勾网为例:

import requests

url = 'https://passport.lagou.com/login/login.html'
post_url = 'https://passport.lagou.com/login/login.json'

header = {'Referer': 'https://passport.lagou.com/login/login.html',
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64;x64) AppleWebKit/537.36 \
                        (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
post_data = {'username': 'youremail@address.com', 'password': 'yourpassword', 'request_form_verifyCode': '',
             'submit': ''}

session = requests.Session()

session.post(post_url, data=post_data, headers=header)

target_url = 'https://www.lagou.com/resume/myresume.html'
response = session.get(target_url)

print(response.text)

在上面的示例中,首先我们构建了登录用到的post_url和登录数据post_data,从浏览器中获取了一些请求头作为header。然后建立一个session,这是一个cookie会话机制,每次用session发送的请求都会自动携带上次请求的cookie,为模拟登录保持状态时的核心操作。最后用session.post方法模拟登录请求,将结果存储在session中 。接下来用session.get方法获取需要登录才能访问的页面response。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3 Post登录并且保存cookie登录其他页面的方法 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python3按一定数据位数格式处理bin文件的方法

    Python3中处理bin文件需要借助二进制文件读取的方式,而按一定数据位数格式处理bin文件的方法,则需要借助struct模块。 使用struct解析bin文件 struct模块可以用来解析binary数据,让我们能够以通用的方式获取和设置binary文件中的数据。它旨在处理C structures,因此需要提供一些元数据来解析binary数据。常见的元数…

    python 2023年6月3日
    00
  • pymssql ntext字段调用问题解决方法

    下面我将详细讲解“pymssql ntext字段调用问题解决方法”的完整攻略。 问题描述 当使用 pymssql 模块连接 Microsoft SQL Server 数据库时,可能会遇到 ntext 数据类型的字段无法正常调用的问题。这是因为 ntext 是一种较老的数据类型,其数据被存储为 Unicode 字符串,但在 Python 中,Unicode 字…

    python 2023年5月20日
    00
  • Python利用openpyxl库遍历Sheet的实例

    下面是Python利用openpyxl库遍历Sheet的实例的完整实例教程: 环境准备 在使用openpyxl库之前,需要确保已经安装了该库。可以使用pip install openpyxl命令来安装它。 打开Excel文件 我们可以使用openpyxl库来打开一个Excel文件,从而遍历其中的Sheet。打开文件的方法是load_workbook()。具体…

    python 2023年5月13日
    00
  • Python中调用其他程序的方式详解

    Python中调用其他程序的方式详解 在Python中,我们经常需要调用其他的程序来实现特定的功能或者完成某些任务。通常遇到这种情况,我们可以使用os模块和subprocess模块提供的相关函数来实现对其他程序的调用操作。 使用os模块进行调用 os模块可以用来调用其他进程或者在当前进程中使用shell命令。使用os.system()函数可以简单地执行命令,…

    python 2023年5月31日
    00
  • python脚本实现数据导出excel格式的简单方法(推荐)

    接下来我将详细讲解“python脚本实现数据导出Excel格式的简单方法(推荐)”实例教程。 1. 简介 本文主要讲解如何使用Python实现将数据导出为Excel格式的简单方法。其中,我们使用第三方库openpyxl来实现数据写入Excel的操作。此外,我们还会介绍pandas库的方式来进行Excel写入。 2. 安装库 首先我们需要安装openpyxl库…

    python 2023年5月13日
    00
  • Python下载的11种姿势(小结)

    Python下载的11种姿势(小结) Python作为一门开源的高级编程语言,具有简单易上手且功能强大的特点,因而广受欢迎。同时,为了方便大家使用Python,也出现了很多下载Python的方式。本文将汇总11种常见的Python下载姿势,包括: 通过官网下载Python安装文件 使用Anaconda进行Python的下载和管理 使用Python环境管理器p…

    python 2023年5月14日
    00
  • python持久化存储文件操作方法

    下面是关于Python持久化存储文件操作方法的完整攻略: 1. 什么是Python持久化存储? Python持久化存储是指将Python程序中的数据(如变量、对象、数据结构等)保存到本地磁盘或其它外部存储设备,以便下次程序运行时能够重新读取这些数据。这可以方便用户保存或共享程序中的数据,也可以加快程序运行速度。 在Python中,常用的持久化存储方法包括:文…

    python 2023年6月2日
    00
  • 基于Python制作一个文本翻译器

    如果要基于Python制作一个文本翻译器,我们可以使用Python的机器翻译库——Googletrans和BaiduTranslate,这两个库可以实现文本的自动翻译。 以下是制作文本翻译器的完整攻略: 步骤1:安装机器翻译库 我们需要下载和安装Python的机器翻译库——Googletrans和BaiduTranslate。其中,Googletrans可以…

    python 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部