python模拟qq登录三方网站_使用Python模拟腾讯第三方认证-篇2

这篇博客介绍了如何使用Python模拟QQ登录第三方网站的详细步骤,包括获取STATE和CLIENTID、请求登录页面、登录校验、登录过程以及获取授权等关键环节。通过这个过程,可以实现对网站的自动化登录和爬虫分析。
摘要由CSDN通过智能技术生成

上篇分析了模拟登陆的流程,以及HTTP请求和回应,下面我们开始编码实现。

编码

准备

安装requests, pip install requests

使用requests请求比使用urllib方便了很多,下面简单封装了一个http请求函数fetch:

'''

默认为GET,如果赋值data后则为POST方式

'''

def fetch(self, url, data=None, **kw):

if data is None:

func = self.session.get

else:

kw['data'] = data

func = self.session.post

return func(url, **kw)

使用QQ登录

self.jkqqurl='http://passport.jikexueyuan.com/connect/qq'

response = self.fetch(self.jkqqurl)

self.state = re.findall('&state=(.*?)\&', response.url)[0] #(.*?), 括号为返回匹配值,即=后面的

self.client_id = re.findall('&client_id=(.*?)\&', response.url)[0]

因为下面向腾讯请求认证需要学院返回的这两个参数:STATE, CLIENTID, 这里记录下来。

请求登录页面

通过上步请求后,虽然学院发起了向腾讯认证服务器的请求,但是因为没有登录会被重新定向至登录授权页面,

这里我们手动请求一次封装在IFrame中的登录页面:

self.xloginurl='http://xui.ptlogin2.qq.com/cgi-bin/xlogin'

g = self.fetch(self.xloginurl, params = {

'appid': self.appid,

'style': 23,

'login_text': '授权并登录',

'hide_title_bar': 1,

'target': 'self',

's_url': self.loginjumpurl,

'pt_3rd_aid': 101119675,

'pt_feedback_link': self.feedbackurl,

}).text

这步操作理论上会产生一些登录请求的会话信息,还是尽量模拟浏览器操作,后面再作精简。

登录校验

分析来看,腾讯根据登录请求类型来产生校验码图片或文字型校验码(如果不需要校验码图片),看代码:

self.checkurl2='http://check.ptlogin2.qq.com/check'

g = self.fetch(self.checkurl2, params = {

'regmaster': '',

'pt_tea': 1,

'pt_vcode': 1,

'uin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值