当前位置: 首页 > news >正文

做单本小说网站怎么样外贸产品销量排名

做单本小说网站怎么样,外贸产品销量排名,电商系统平台,四川省的建设厅注册中心网站首页python实现扫码登录微博网页版 一、找到生成二维码链接地址二、找到确认二维码链接地址三、继续寻找相关链接地址获取登录信息四、最后保存cookies值并进行验证是否有效或登录状态完整代码 五 、 更多文章 一、找到生成二维码链接地址 下面是微博APP扫码登录,其他授…

python实现扫码登录微博网页版

  • 一、找到生成二维码链接地址
  • 二、找到确认二维码链接地址
  • 三、继续寻找相关链接地址获取登录信息
  • 四、最后保存cookies值并进行验证是否有效或登录状态
    • 完整代码
  • 五 、 更多文章

一、找到生成二维码链接地址

  • 下面是微博APP扫码登录,其他授权APP扫码后期更新!
  • 通过F12或者抓包软件Fiddler找到第一个链接地址
loginurl = 'https://login.sina.com.cn/sso/qrcode/image?entry=weibo&size=180&callback=STK_{}'
texturl = session.get(loginurl.format((time.time() * 1000), headers=headers)).text
print(texturl)
#输出texturl = window.STK_16149…… && STK_1614992087527.347({"retcode":20000000,"msg":"succ","data":{"qrid":"2MjNgQt……","image":"\……"}});
  • 小编发现image就是二维码图片,qrid就是需要下一步的参数
  • 通过筛选和转码获取image、qrid的两个参数进一步访问运行
session = requests.session()
loginurl = 'https://login.sina.com.cn/sso/qrcode/image?entry=weibo&size=180&callback=STK_{}'
texturl = session.get(loginurl.format((time.time() * 1000), headers=headers)).text
#通过筛选获得主要参数
xx = re.search("window.STK_\d+.\d+ && STK_\d+.\d+\(?", texturl)
x = json.loads(texturl.strip().lstrip(xx.group()).rstrip(");"))
qrid = x['data']['qrid']
image = x['data']['image']
  • 直接访问打开image二维码图片扫码操作
imageurl = session.get('https:' + image, headers=headers).content
t = showpng(imageurl)
t.start()

二、找到确认二维码链接地址

  • 二维码图片链接我们已经找到,接下来进行扫码后的确认链接
qridurl = 'https://login.sina.com.cn/sso/qrcode/check?entry=weibo&qrid={}&callback=STK_{}'
  • 发现需要两个变量参数

qrid和callback

  • qrid上面我们已经获取,callback就是时间戳
while 1:dateurl = session.get(qridurl.format(qrid,(time.time() * 1000), headers=headers)).text#输出dateurl = window.STK_1614995146615.8608 && STK_1614995146615.8608({"retcode":50114001,"msg":"\u672a\u4f7f\u7528","data":null});xx = re.search("window.STK_\d+.\d+ && STK_\d+.\d+\(?", dateurl)x = json.loads(dateurl.strip().lstrip(xx.group()).rstrip(");"))retcode = x['retcode']if '50114001' in str(retcode):print('二维码未失效,请扫码!')elif '50114002' in str(retcode):print('已扫码,请确认!')elif '50114004' in str(retcode):print('二维码已失效,请重新运行!')elif '20000000' in str(retcode):print('已确认,登录成功!')breakelse:print('其他情况',retcode)time.sleep(5)
  • 通过分析retcode的值

50114001:二维码未扫描状态
50114002:二维码已扫描未确认状态
20000000:二维码已确认状态
50114004:二维码已失效

  • 登录成功了,可以并没有获取需要的真正cookie值

三、继续寻找相关链接地址获取登录信息

  • 二维码确认以后获取了新的参数alt

window.STK_161498904169123 && STK_161498904169123({“retcode”:20000000,“msg”:“succ”,“data”:{“alt”:“ALT-NjE0Njc……”}});

  • 通过抓包软件找到下一个链接就是
alturl = 'https://login.sina.com.cn/sso/login.php?entry=weibo&returntype=TEXT&crossdomain=1&cdult=3&domain=weibo.com&alt=ALT-NjE0Njc4MTM……&savestate=30&callback=STK_161498904169125'
namevalue
entryweibo
returntypeTEXT
crossdomain1
cdult3
domainweibo.com
altALT-NjE0Njc4M……
savestate30
callbackSTK_161498904169125
  • 将alt带入该链接并进行访问获取新的数据
alt = x['data']['alt']
alturl = 'https://login.sina.com.cn/sso/login.php?entry=weibo&returntype=TEXT&crossdomain=1&cdult=3&domain=weibo.com&alt={}&savestate=30&callback=STK_{}'.format(alt,int(time.time() * 100000))
crossDomainUrlList = session.get(alturl,headers=headers).text
print(crossDomainUrlList)
#输出crossDomainUrlList = STK_161500519933534({"retcode":"0","uid":"61……","nick":"\u7528……","crossDomainUrlList":["https:\/\/……"]});
  • 通过访问获取了有用的四个网址

1.https://passport.9797……
2.https://passport.krco……
3.https://passport.weib……
4.https://passport.weibo.com/wbsso……

  • 再将上面四个网址逐一访问既可得到想要的最终cookie值
alturl = 'https://login.sina.com.cn/sso/login.php?entry=weibo&returntype=TEXT&crossdomain=1&cdult=3&domain=weibo.com&alt={}&savestate=30&callback=STK_{}'.format(alt,int(time.time() * 100000))
crossDomainUrl = session.get(alturl,headers=headers).text
pp = re.search("STK_\d+\(?", crossDomainUrl)
p = json.loads(crossDomainUrl.strip().lstrip(pp.group()).rstrip(");"))
crossDomainUrlList = p['crossDomainUrlList']
session.get(crossDomainUrlList[0], headers=headers)
session.get(crossDomainUrlList[1]+'&action=login', headers=headers)
session.get(crossDomainUrlList[2], headers=headers)
#session.get(crossDomainUrlList[3], headers=headers)
print(session.cookies)
  • 读取第二网址的时候老是报错,最后通过对比小编发现网址后面既然还需要多加“&action=login”最后成功访问读取,获得了最全的cookie

四、最后保存cookies值并进行验证是否有效或登录状态

  • 保存cookie和验证cookie就不详细介绍,直接出完整代码可以看懂

完整代码

# -*- coding: utf-8 -*-
import json
import re
import agent
from threading import Thread
import time
import requests
from io import BytesIO
import http.cookiejar as cookielib
from PIL import Image
import osrequests.packages.urllib3.disable_warnings()headers = {'User-Agent': agent.get_user_agents(), 'Referer': "https://weibo.com/"}class showpng(Thread):def __init__(self, data):Thread.__init__(self)self.data = datadef run(self):img = Image.open(BytesIO(self.data))img.show()def islogin(session):try:session.cookies.load(ignore_discard=True)except Exception:passloginurl = session.get("https://account.weibo.com/set/aj/iframe/schoollist?province=11&city=&type=1&_t=0&__rnd={}".format(int(time.time() * 1000)), headers=headers).json()['code']if loginurl == '100000':print('Cookies值有效,无需扫码登录!')return session, Trueelse:print('Cookies值已经失效,请重新扫码登录!')return session, Falsedef wblogin():if not os.path.exists('wbcookies.txt'):with open("wbcookies.txt", 'w') as f:f.write("")session = requests.session()session.cookies = cookielib.LWPCookieJar(filename='wbcookies.txt')session, status = islogin(session)if not status:loginurl = 'https://login.sina.com.cn/sso/qrcode/image?entry=weibo&size=180&callback=STK_{}'texturl = session.get(loginurl.format(int(time.time() * 1000), headers=headers)).textxx = re.search("window.STK_\d+.\d+ && STK_\d+.\d+\(?", texturl)x = json.loads(texturl.strip().lstrip(xx.group()).rstrip(");"))qrid = x['data']['qrid']image = x['data']['image']imageurl = session.get('https:' + image, headers=headers).contentt = showpng(imageurl)t.start()qridurl = 'https://login.sina.com.cn/sso/qrcode/check?entry=weibo&qrid={}&callback=STK_{}'while 1:dateurl = session.get(qridurl.format(qrid, int(time.time() * 1000), headers=headers)).textxx = re.search("window.STK_\d+.\d+ && STK_\d+.\d+\(?", dateurl)x = json.loads(dateurl.strip().lstrip(xx.group()).rstrip(");"))retcode = x['retcode']if '50114001' in str(retcode):print('二维码未失效,请扫码!')elif '50114002' in str(retcode):print('已扫码,请确认!')elif '50114004' in str(retcode):print('二维码已失效,请重新运行!')elif '20000000' in str(retcode):alt = x['data']['alt']alturl = 'https://login.sina.com.cn/sso/login.php?entry=weibo&returntype=TEXT&crossdomain=1&cdult=3&domain=weibo.com&alt={}&savestate=30&callback=STK_{}'.format(alt, int(time.time() * 100000))crossDomainUrl = session.get(alturl, headers=headers).textpp = re.search("STK_\d+\(?", crossDomainUrl)p = json.loads(crossDomainUrl.strip().lstrip(pp.group()).rstrip(");"))crossDomainUrlList = p['crossDomainUrlList']session.get(crossDomainUrlList[0], headers=headers)session.get(crossDomainUrlList[1] + '&action=login', headers=headers)session.get(crossDomainUrlList[2], headers=headers)#session.get(crossDomainUrlList[3], headers=headers)print('已确认,登录成功!')breakelse:print('其他情况', retcode)time.sleep(5)session.cookies.save()return sessionif __name__ == '__main__':wblogin()

五 、 更多文章

  1. 抖音篇(一)
  2. 快手篇(二)
  3. 微视篇(三)
  4. 微信公众号篇(四)
  5. B站篇(六)
  6. 视频号篇(七)
  • 后期小编将开设登录后批量采集各平台数据(点赞、播放量、评论、图片、视频、音乐等)专栏文章!记得关注哟!😜
  • 如果文章能帮到您,愿意给小编点个 👍 吗,么么哒~😘 (●’◡’●)
http://www.yayakq.cn/news/493101/

相关文章:

  • 叶榭做网站发布设计任务的网站
  • 游戏道具网站开发3d地图网站模板html
  • 建设网站 目标asp作业做购物网站代码
  • 娱乐网站建设ppt图文设计用什么软件
  • wordpress整站零基础学计算机难吗
  • 中国商标官方网站网站建设xunmei
  • 天津百度建网站天津门户网站开发
  • 有什么建设网站的书籍视频网站如何做盗链
  • 网站建设策划书怎么写产品经理网站开发需求
  • 临湘网站建设自己做网站平台需要服务器
  • 搜索引擎网站推广可以自己做吗汕头网站建设策划
  • 房地产网站建设报价怎么找当地的地推团队
  • 山东省建设局注册中心网站wordpress 翁
  • 网站建设流程的步骤部门网站建设情况汇报
  • 驾校网站源码下载网站建设与维护 计算机
  • phpcms 企业网站网站尺寸规范
  • 做网站需要的手续wordpress代码转义
  • 企业网站建站的专业性原则是指上海电子商城网站
  • 百度上做网站需要钱吗模板规格
  • 门户网站开发技术辽宁建设银行企业银行官方网站
  • 东莞网站建设开发wordpress地址和找点地址
  • 实用网站模板项目建设成效怎么写
  • 周村网站制作价格低免费咨询法律援助该打什么电话
  • 服装网站开发项目计划书网站设计制作的服务商
  • 手机wap网站怎样从微信公众号打开怎么做淘宝客优惠券网站
  • 怎么做系统软件网站专营网站建设
  • 凡客建站官网登录入口做徽标哪个网站素材多
  • 广告品牌设计机构网站织梦模板北京网络营销岗位数量
  • 网站如何使用cdn北京商城网站开发
  • 网站建设有哪些常用行为软件外包公司联系方式