• 大小: 6KB
    文件类型: .py
    金币: 2
    下载: 1 次
    发布日期: 2021-08-10
  • 语言: Python
  • 标签: 微博登录  python3  +  

资源简介

也是自己学习python,网上模拟登陆的代码很多都是py2.7版本,最新的py3+版本更改了函数名也摒弃了2.x版本的一些方法,现在根据修改,成功实现py3微博模拟登陆,并加了自己学习注释,希望大家共同进步。里面更改自己的登录名和密码,即可直接运行

资源截图

代码片段和文件信息

# -*-coding:utf-8-*-
# 请求
import requests
# html中 element 查找
from bs4 import BeautifulSoup
# json格式 转换
import json
# base64 加密
import base64
# 利用quote
import urllib.request
import re
import rsa
import binascii

head = {‘Accept‘: ‘text/htmlapplication/xhtml+xmlapplication/xml;q=0.9image/webp*/*;q=0.8‘
        ‘Content-Type‘: ‘application/x-www-form-urlencoded‘
        ‘Accept-Language‘: ‘zh-CNzh;q=0.8‘
        ‘Accept-Encoding‘: ‘gzip deflate br‘
        ‘Cache-Control‘: ‘max-age=0‘
        ‘Connection‘: ‘keep-alive‘
        ‘Upgrade-Insecure-Requests‘: ‘1‘
        ‘Origin‘: ‘http://weibo.com‘
        “Referer“: “http://weibo.com/“
        ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X metaSr 1.0‘
        ‘Host‘: ‘login.sina.com.cn‘}


# 其中servertime,nonce,rsakv是从prelogin.php请求的返回数据中获取到的
# su是经过加密之后的用户名,一次base64加密
# sp是经过加密之后的密码,rsa加密方式加密过后的密码
# su和sp的分析是通过网上看别人的文章看到的,自己想还没有那个能力
# 剩余的参数都是固定值,直接写死就好
# 知道参数构成之后,对生成参数,提交
data = {
        “servicetime“: ““
        “nonce“: ““
        “rsakv“: ““
        “sp“: ““
        “su“: ““
        # 下方 东西固定,写死
        “entry“: “weibo“
        “from“: ““
        “gateway“: “1“
        “savestate“: “7“
        “useticket“: “1“
        “qrcode_flag“: “false“
        “pagerefer“: “https://login.sina.com.cn/crossdomain2.php?action=logout&r=https%3A%2F%2Fweibo.com%2Flogout.php%3Fbackurl%3D%252F“
        “vsnf“: “1“
        “service“: “miniblog“
        “pwencode“: “rsa2“
        “sr“: “1280*720“
        “encoding“: “UTF-8“
        “prelt“: “217“
        “url“: “https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack“
        “returntype“: “meta“
}

# xxx 用户名及密码加密,校验信息
# nonce:X73OB8
# pwencode:rsa2as
# rsakv:1330428213
# sp:7dbeeb0db7be1355904339fd416e05963d05dcc874da8e8aa425ce6b559861e86047d0fa5ecb256ed44d8e320effd2027100c7b58b7bff2177045183b74a63f8eeebe8c8daa7f93211bfc0f95c02f3d3dd5c1a1512b7adbabfa521c47ad82cc3a9e6e8c4d2ddb3bd555f8ce752df2932c9d2adbf78eddfeefd3c09f64e47482d

if __name__ == ‘__main__‘:
    email = “username@email.com“
    password = “password“
    pre_url = “https://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=d3Nzenp5JTQweWVhaC5uZXQ%3D&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.19)&_=1534943717889“
    s = requests.session()
    res = s.get(pre_url)
    res = str(res.text.encode(‘utf-8‘)).split(‘(‘)[-1].split(‘)‘)[0

评论

共有 条评论