Python处理表单登陆(2)

Python处理表单登陆(2)

2.处理cookies

在上一节登入完成之后,在代码的最后加入以下代码,保存此次登入的cookies

session.cookies.save()

cookies将会储存在代码所在的文件夹中。其中,cookies数据是已经经过加密处理的,每一个cookies大概会定义4个参数:

Set-Cookies : name = VALUR;
expires : DATA;
path = PATH;
domain = DOMAIN_NAME;

name是cookies的名称,一般会进行加密处理;expires是cookie的到期日期和时间;path是指cookie的路径;domain是指cookie所在的域名。
有了保存下来的cookies接下来就可以通过加载cookies实现登入。

import requests
import http.cookiejar as cookielib
#导入所需要的库

session = requests.session()
session,cookies = cookielib.LWPCookieJar(filename='cookies')
try:
	session.cookies.load(ignore_discard=True)
except:
pritn("Cookie 未能加载")
#如果没有出现"Cookie 未能加载"说明cookies加载成功。

def isLogin():
	url = "http://www.santostang.com/wp-admin/profile.php"
	login_code = session.get(url,headers=headers,allow_redirects=False).status_code
	if login_code == 200:
		return True
	else:
		return False
#创建一个isLogin函数判断是否登入成功,allow_redirects=False意为禁止重定向

if __name__ == '__main__':
	agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
	headers = {
	'Host' : 'www.santostang.com',
	'Origin' : 'http://www.santostang.com',
	'Referer' : 'http://www.santostang.com/wp-login.php',
	'User-Agent' : agent
	}
	if isLogin():
		print("您已经登入")

将第一部分与第二部分结合,在没有cookies的时候用账号密码登入,有cookies的时候加载cookies登入,组合成一下代码:

import requests
import http.cookiejar as cookielib

session = requests.session()
session,cookies = cookielib.LWPCookieJar(filename='cookies')
try:
	session.cookies.load(ignore_discard=True)
except:
pritn("Cookie 未能加载")

def isLogin():
	url = "http://www.santostang.com/wp-admin/profile.php"
	login_code = session.get(url,headers=headers,allow_redirects=False).status_code
	if login_code == 200:
		return True
	else:
		return False

def Login(secret,account):
	post_url = 'http://www.santostang.com/wp-login.php'
	postdata = {
	'pwd' : secret,
	'log' : account,
	'remember' : 'forever',
	'redirect_to' : 'http://www.santostang.com/wp-admin',
	'testcookie' : 1,
	}
	try:
		#不需要验证码直接登入
		login_page = session.post(post_url,data = pastdata,headers = headers)
		login_code = login_page.text
		print(login_page.status_code)
	except:
		pass
	session.cookies.save()

if __name__ == '__main__':
	agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
	headers = {
	'Host' : 'www.santostang.com',
	'Origin' : 'http://www.santostang.com',
	'Referer' : 'http://www.santostang.com/wp-login.php',
	'User-Agent' : agent
	}
	if isLogin():
		print("您已经登入")
	else:
		login('a12345','test')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值