关键词

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

下面我将为你详细讲解 “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。

本文链接:http://task.lmcjl.com/news/13620.html

展开阅读全文
上一篇:NumPy位运算 下一篇:NumPy字符串处理函数