python爬虫:模拟登录新浪微博并实现cookies保存,详细讲一下rsa

您所在的位置:网站首页 爬虫模拟登录过去cookie python爬虫:模拟登录新浪微博并实现cookies保存,详细讲一下rsa

python爬虫:模拟登录新浪微博并实现cookies保存,详细讲一下rsa

2024-07-13 07:07:05| 来源: 网络整理| 查看: 265

前两天看了一篇大佬模拟登录淘宝的blog感觉收获颇多,刚好这两天比较闲,研究了下微博的登录方式

进入正题:

琢磨了两天找到了两种方式

构造登录时提交的加密参数,比较复杂,但是切换成不常用的ip也不会出验证码,这里详细讲这种方式 用selenium加载,切ip会出图形验证码,可以通过调用第三方API的方式破解,这里只写了不出验证码的情况供参考 第一种方式:

1.向’https://login.sina.com.cn/sso/prelogin.php’发送预登录的get请求 2.向’https://login.sina.com.cn/sso/login.php’发送正式登录的post请求 3.向’https://passport.weibo.com/wbsso/login?ticket=*****&ssosavestate=*****’发送get请求(****根据上一个请求响应而定,后面会说) 三步完成后进入登录状态,可以访问个人主页和做其他事情了~

会用到RSA加密,不了解原理的可以看一下b站李永乐老师的视频,应该相当形象

这里是思路,可以直接跳过看代码

chrome在未登录状态下打开微博,应该是这样的页面,先打开开发者模式,填写右边的用户名、密码,戳登录,页面跳转后,可以看到提交了几个POST请求(Preserve log记得勾选,否则一跳就看不到了)。最后一个明显是与登录相关,访问它不带参数的Request Url,可以到达一个比较纯净的登录接口: ‘https://login.sina.com.cn/signup/signin.php?entry=sso’在这里插入图片描述 在这里插入图片描述 2.同样打开开发者模式,用浏览器登录,提交的POST请求有两个,第一个是验证邮箱是否有效的,可以不用管;第二个就是我们的登录请求。提交的form data里有一堆参数。再重新登录一次,可以发现大部分是固定的,但是有几个参数值得注意,su, nonce, servertime, pubkey, rsakv, sp,构造出这几个参数,应该就可以顺利登录。 在这里插入图片描述 3.检索后,发现su参数是向’https://login.sina.com.cn/sso/prelogin.php’请求时带上去的,用charles或者fiddler等抓包软件可以看到这个请求返回了一个json文件,有nonce, servertime, pubkey, rsakv的值,与POST请求提交的一致,可以肯定在正式登录之前先请求了这个url 在这里插入图片描述 4.剩下su、sp没有解决,监听一下登陆页面的鼠标点击事件,发现一段关键代码,su参数就是由用户名经过url编码再base64转码后得来的。再往后走,sp参数也找到了,是登录密码经过rsa登录后得到的,sp详细的构造过程见代码注释 在这里插入图片描述 在这里插入图片描述 5.所有参数都就绪了,但是发送正式登录请求返回的是一个json文件,CrossDomainUrlList里的正好是我们发送登录请求后要跳转的链接列表(在代码测试的时候会知道只有带ticket参数那个必须进行跳转在这里插入图片描述 **这里是代码:** from time import time import requests import base64 from urllib import parse import re import json import rsa import binascii from lxml import etree import os # 建立一个会话对象,使cookie可以跨请求保留 SESSION = requests.session() # cookies保留再本地的路径 COOKIES_FILE_PATH = 'weibo_login_cookies.json' class WeiboLogin: def __init__(self, username, password): """ 需传入两个参数 :param username:用户名 :param password: 密码 """ # 预登录url self.pre_login_url = 'https://login.sina.com.cn/sso/prelogin.php' # 正式登录url self.login_url = 'https://login.sina.com.cn/sso/login.php' # 个人主页url self.mysina_url = 'http://my.sina.com.cn/' # 微博用户名 self.username = username # 微博密码 self.password = password def per_login(self): """ 预登录,此步骤仅验证用户名 :return:正式登录时要用上的5个参数值,su,nonce,servertime,pubkey,rsakv """ # su参数是用户名经过url编码和base64转码后的字符串 su = base64.b64encode(parse.quote(username).encode('utf-8')).decode('utf-8') per_login_params = { 'entry': "account"


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭