python爬虫,人人网登录

coding=utf-8

“”"
author:lei
function:
“”"

import requests
import js2py
import json

def login():
# 创建session对象
session = requests.session()
# 设置请求头
session.headers = {“User-Agent”: “Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1”}

# 发送获取公钥数据包的get请求
response = session.get("http://activity.renren.com/livecell/rKey")
print(response.content)

# 创建n
n = json.loads(response.content)["data"]

# 创建t
t = {
    "password": "4234234"
}

# 获取前置js代码
rsa_js = session.get("http://s.xnimg.cn/a85738/wap/mobile/wechatLive/js/RSA.js").content.decode()
bigint_js = session.get("http://s.xnimg.cn/a85738/wap/mobile/wechatLive/js/BigInt.js").content.decode()
barrett_js = session.get("http://s.xnimg.cn/a85738/wap/mobile/wechatLive/js/Barrett.js").content.decode()
# 创建js环境对象
context = js2py.EvalJs()

# 将变量和js代码加载到环境对象中执行
context.execute(rsa_js)
context.execute(bigint_js)
context.execute(barrett_js)
context.n = n
context.t = t

# 将关键js代码放到环境对象中执行
pwd_js = """
    t.password = t.password.split("").reverse().join(""),
    setMaxDigits(130);
    var o = new RSAKeyPair(n.e,"",n.n)
      , r = encryptedString(o, t.password);
"""
context.execute(pwd_js)

# 获取加密密码
print(context.r)

# 构建form表单
form_data = {
    "phoneNum": "169656565",
    "password": context.r,
    "c1": -100,
    "rKey": n["rkey"]
}

print(form_data)
# 发送post请求,模拟登陆
response = session.post("http://activity.renren.com/livecell/ajax/clog", data=form_data)

# 验证
print(response.content.decode())

if name == ‘main’:
login()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值