如何使用Python的Requests包实现模拟登陆


当前第2页 返回上一页

因此我们的代码,需要在第一次请求的时候拿到这个sessionID。第二次请求的时候把这个sessionID一起传过去。而requests厉害的地方就是,一句简单requests.Session(),就能使用这个会话对象。

第二份代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

#!/usr/bin/env python2.7

# -*- coding: utf-8 -*-

 

import requests

import re

 

# 头部信息

headers = {

 'Host':"localhost",

 'Accept-Language':"zh-CN,zh;q=0.8",

 'Accept-Encoding':"gzip, deflate",

 'Content-Type':"application/x-www-form-urlencoded",

 'Connection':"keep-alive",

 'Referer':"http://localhost/login",

 'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"

}

 

# 登陆方法

def login(url,csrf,r_session):

 data = {

 "_csrf" : csrf,

 "username": "xiedj",

 "password": "***"

 }

 

 response = r_session.post(url, data=data, headers=headers)

 return response.content

 

 

# 第一次访问获取csrf值

def get_login_web(url):

 r_session = requests.Session()

 page = r_session.get('http://localhost/login')

 reg = r'<meta name="csrf-token" content="(.+)">'

 csrf = re.findall(reg,page.content)[0]

 

 

 login_page = login(url,csrf,r_session)

 print login_page

 

 

if __name__ == "__main__":

 url = "http://localhost/login/checklogin"

 get_login_web(url)

成功获取登陆后的页面

由代码可以知道,requests.Session()启动会话对象后,第二次请求会自动把上一次的sessionID一起传过去。

相关推荐:

使用Python导出Excel图表以及导出为图片的方法

分析使用python的open函数时报No Such File or DIr的错误原因


以上就是如何使用Python的Requests包实现模拟登陆的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

Python是什么

Python分数怎么表示

Python中的基础点

Python缩进是强制的吗

Python使用arrow库处理时间数据的示例详解

Python怎么print汉字

Python中对socket的详细介绍

Python中dict是什么

Python基本语法

Python在哪里下载

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...