import urllib

import base64

import rsa

import binascii

def PostEncode(userName, passWord, serverTime, nonce, pubkey, rsakv):

"Used to generate POST data"

encodedUserName = GetUserName(userName)#用户名使用base64加密

encodedPassWord = get_pwd(passWord, serverTime, nonce, pubkey)#目前密码采用rsa加密

postPara = {

'entry': 'weibo',

'gateway': '1',

'from': '',

'savestate': '7',

'userticket': '1',

'ssosimplelogin': '1',

'vsnf': '1',

'vsnval': '',

'su': encodedUserName,

'service': 'miniblog',

'servertime': serverTime,

'nonce': nonce,

'pwencode': 'rsa2',

'sp': encodedPassWord,

'encoding': 'UTF-8',

'prelt': '115',

'rsakv': rsakv,

'url': 'http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',

'returntype': 'META'

}

postData = urllib.urlencode(postPara)#网络编码

return postData

PostEncode函数构建POST的消息体,要求构建得到内容与真正登陆所需的信息相同。难点在用户名和密码的加密方式:

复制代码 代码如下:

def GetUserName(userName):

"Used to encode user name"

userNameTemp = urllib.quote(userName)

userNameEncoded = base64.encodestring(userNameTemp)[:-1]

return userNameEncoded

def get_pwd(password, servertime, nonce, pubkey):

rsaPublickey = int(pubkey, 16)

key = rsa.PublicKey(rsaPublickey, 65537) #创建公钥

message = str(servertime) + '\t' + str(nonce) + '\n' + str(password) #拼接明文js加密文件中得到

passwd = rsa.encrypt(message, key) #加密

passwd = binascii.b2a_hex(passwd) #将加密信息转换为16进制。

return passwd

新浪登录过程,密码的加密方式原来是SHA1,现在变为了RSA,以后可能还会变化,但是各种加密算法在Python中都有对应的实现,只要发现它的加密方式(),程序比较易于实现。

到这里,Python模拟登陆新浪微博就成功了,运行输出:

复制代码 代码如下:

loginUrl: http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&ssosavestate=1390390056&ticket=ST-MzQ4NzQ5NTYyMA==-1387798056-xd-284624BFC19FE242BBAE2C39FB3A8CA8&retcode=0

Login sucess!

果需要爬取微博中的信息,接下来只需要在Main函数后添加爬取、解析模块就可以了,比如读取某微博网页的内容:

网友评论

文明上网理性发言,请遵守 新闻评论服务协议我要评论

立即提交

专题推荐独孤九贱-php全栈开发教程

全栈 100W+

主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门

玉女心经-web前端开发教程

入门 50W+

主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门

天龙八部-实战开发教程

实战 80W+

主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习

php中文网:公益在线php培训,帮助PHP学习者快速成长!

Copyright 2014-2020 https://www.php.cn/ All Rights Reserved | 苏ICP备2020058653号-1

php 新浪微博模拟登陆,python模拟新浪微博登陆功能(新浪微博爬虫)相关推荐

  1. Python模拟登陆新浪微博

    本文转自:http://blog.csdn.net/andrewseu/article/details/48730735 前几天想在学校论坛上淘一个二手蓝牙鼠标,没有时间盯着论坛就写了Python程序 ...

  2. python模拟登录爬虫 简书_python爬虫入门之模拟登陆新浪微博

    很多网页浏览都需要首先登陆,比如说新浪微博.当然,这里有一个小技巧,用手机3G版登陆.电脑版会有各种加密,动态加载什么的.我们就耍一下小流氓,柿子拣软的捏么. 浏览器保持登陆是利用我们登陆时收到的co ...

  3. pythonurllib微博登陆是什么_python模拟新浪微博登陆功能(新浪微博爬虫)

    1.主函数(WeiboMain.py): import urllib2 import cookielib import WeiboEncode import WeiboSearch if __name ...

  4. Python模拟微博登陆,亲测有效!

    作者 l 上海小胖 来源 l Python专栏(ID:xpchuiit) 转载请联系授权(微信ID:pythonzhuanlan) 今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密.那么首先就 ...

  5. Python 模拟微博登陆,亲测有效!

    今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密.那么首先就要做那件必做之事!模拟登陆-- 代码是参考了:https://www.douban.com/note/201767245/,我对代码 ...

  6. python模拟登录qq账号密码_最新的Python模拟登陆QQ脚本,一键批量登录,强行过验证!...

    Python模拟QQ批量登陆脚本,以下代码附带解释以便于理解思路. Python代码: #coding=utf-8 import os import time import win32gui impo ...

  7. python模拟登陆 验证码el_python 模拟登陆github的示例

    # -*- coding: utf-8 -*- # @Author: CriseLYJ # @Date: 2020-08-14 12:13:11 import re import requests c ...

  8. python模拟登陆163邮箱并获取通讯录

    From: http://hi.baidu.com/fc_lamp/blog/item/2466d1096fcc532de8248839.html python模拟登陆163邮箱并获取通讯录 #-*- ...

  9. python模拟登录163邮箱_python模拟登陆163邮箱并下载邮件内容(第三版代码片段)

    python模拟登陆163邮箱并下载邮件内容(第三版代码片段) 注意: 1 由于163邮箱有众多版本,所以登录请求URL,邮件URL等可能也不太一样,下面是163的简约3.0 2 代码缺乏错误处理能力 ...

  10. 潜心专研Python模拟登陆专题,实现网易云音乐自动签到!这项目居然只值三百?

    前言: 时隔三周没有和大家见过面了,最近在研究python模拟登陆专题,话不多说,让我们愉快地开始实现模拟登陆实现网易云自动签到 开发工具 **Python****版本:**3.6.4 相关模块: D ...

最新文章

  1. linux网络虚拟化
  2. 静态时序分析的约束命令
  3. MySQL-CentOS7通过YUM安装MySQL5.7.29
  4. Web前端开发学习资料分享
  5. CImageList上的位图, CTabCtrl 还是用ICON好!
  6. Twitter开发者帐号申请(还没出结果)
  7. Makefile知识点
  8. matlab矩阵(一)--如何控制矩阵中小数点的位数
  9. 创客匠人直播升级服务,打造主流直播课堂​
  10. ARM920T的Cache
  11. portraiture2022插件安装使用教程
  12. 【shel】-if表达式
  13. Android 内存剖析 – 发现潜在问题------比较好android博客
  14. 【12306购票】测试运行以及完整代码
  15. 怎么样免费建自己的网站?
  16. 计算机科学与技术路线,技术路线写法
  17. 最全的厚黑学,教你怎样混社会(人生格言) 作者 李宗吾
  18. 【PMP】三点估算法
  19. ssdp协议 upnp_SSDP,简单服务发现协议
  20. arcgis select by attributes一次选多个_ArcGIS 导出 CAD 的常见需求以及实现

热门文章

  1. 浅谈外网通过反向代理访问内网资源时的权限保护
  2. PPT画四分之一圆或扇形
  3. 中石油邮箱pop3服务器,手机客户端访问中油邮箱设置
  4. html优秀作品展示,31个漂亮的作品展示网页设计
  5. USB转串口驱动(支持各平台)
  6. matlab 一榀框架,一榀框架(一榀框架的选取依据)
  7. Excel如何批量删除所有空格
  8. Android 网络图片加载之cude 框架
  9. git tag (打标签)
  10. vue学习笔记二:HBuilder X框架搭建